{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ML Model 2: Fourier Transform\n",
    "\n",
    "**UNSUPERVISED APPROACH**: This model does NOT use labels during training.\n",
    "Labels are only used for evaluation and error analysis.\n",
    "\n",
    "**Approach**:\n",
    "- Converts time series to frequency domain\n",
    "- Analyzes spectral characteristics\n",
    "- Detects frequency-based anomalies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from scipy.fft import fft, fftfreq\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "plt.style.use('default')\n",
    "sns.set_palette(\"husl\")\n",
    "plt.rcParams['figure.figsize'] = (12, 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dataset shape: (2000, 141)\n",
      "Original anomaly rate: 0.110\n",
      "Binary anomaly rate: 0.110\n",
      "Class distribution: {1: 1780, 2: 192, 3: 6, 4: 18, 5: 4}\n",
      "\n",
      "NOTE: Labels are NOT used for training - only for evaluation!\n"
     ]
    }
   ],
   "source": [
    "# Load data\n",
    "df = pd.read_csv('../data/ECG5000_balanced.csv')\n",
    "X = df.drop('target', axis=1)\n",
    "y = df['target']\n",
    "\n",
    "# Convert multiclass to binary: 1 = normal, 2-5 = anomalies\n",
    "y_binary = (y != 1).astype(int)  # 0 for normal (class 1), 1 for anomalies (classes 2-5)\n",
    "\n",
    "print(f\"Dataset shape: {df.shape}\")\n",
    "print(f\"Original anomaly rate: {(y != 1).mean():.3f}\")\n",
    "print(f\"Binary anomaly rate: {y_binary.mean():.3f}\")\n",
    "print(f\"Class distribution: {y.value_counts().sort_index().to_dict()}\")\n",
    "print(\"\\nNOTE: Labels are NOT used for training - only for evaluation!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting Fourier features (UNSUPERVISED)...\n",
      "Processed 0/2000 samples\n",
      "Processed 1000/2000 samples\n",
      "Feature extraction complete - NO LABELS USED!\n"
     ]
    }
   ],
   "source": [
    "# UNSUPERVISED FOURIER ANOMALY DETECTION\n",
    "# No labels used in training - purely frequency domain analysis\n",
    "\n",
    "def extract_fourier_features(time_series, n_freq_components=20):\n",
    "    fft_result = fft(time_series)\n",
    "    fft_freq = fftfreq(len(time_series))\n",
    "    \n",
    "    positive_freq_mask = fft_freq > 0\n",
    "    positive_freq = fft_freq[positive_freq_mask]\n",
    "    positive_fft = fft_result[positive_freq_mask]\n",
    "    \n",
    "    power_spectrum = np.abs(positive_fft) ** 2\n",
    "    \n",
    "    features = {}\n",
    "    top_indices = np.argsort(power_spectrum)[-n_freq_components:]\n",
    "    features['dominant_frequencies'] = positive_freq[top_indices]\n",
    "    features['dominant_powers'] = power_spectrum[top_indices]\n",
    "    features['total_power'] = np.sum(power_spectrum)\n",
    "    features['mean_power'] = np.mean(power_spectrum)\n",
    "    features['std_power'] = np.std(power_spectrum)\n",
    "    features['max_power'] = np.max(power_spectrum)\n",
    "    features['power_entropy'] = -np.sum(power_spectrum * np.log(power_spectrum + 1e-10))\n",
    "    features['mean_frequency'] = np.average(positive_freq, weights=power_spectrum)\n",
    "    features['frequency_std'] = np.sqrt(np.average((positive_freq - features['mean_frequency'])**2, weights=power_spectrum))\n",
    "    features['spectral_centroid'] = np.sum(positive_freq * power_spectrum) / np.sum(power_spectrum)\n",
    "    \n",
    "    cumulative_power = np.cumsum(power_spectrum)\n",
    "    rolloff_threshold = 0.85 * cumulative_power[-1]\n",
    "    rolloff_idx = np.where(cumulative_power >= rolloff_threshold)[0][0]\n",
    "    features['spectral_rolloff'] = positive_freq[rolloff_idx]\n",
    "    \n",
    "    return features\n",
    "\n",
    "print(\"Extracting Fourier features (UNSUPERVISED)...\")\n",
    "fourier_features = []\n",
    "for i in range(len(X)):\n",
    "    if i % 1000 == 0:\n",
    "        print(f\"Processed {i}/{len(X)} samples\")\n",
    "    features = extract_fourier_features(X.iloc[i].values)\n",
    "    fourier_features.append(features)\n",
    "\n",
    "print(\"Feature extraction complete - NO LABELS USED!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fourier features shape: (2000, 9)\n"
     ]
    }
   ],
   "source": [
    "# Convert features to DataFrame\n",
    "feature_names = [\n",
    "    'total_power', 'mean_power', 'std_power', 'max_power', 'power_entropy',\n",
    "    'mean_frequency', 'frequency_std', 'spectral_centroid', 'spectral_rolloff'\n",
    "]\n",
    "\n",
    "X_fourier = pd.DataFrame(index=X.index, columns=feature_names)\n",
    "\n",
    "for i, features in enumerate(fourier_features):\n",
    "    for feature_name in feature_names:\n",
    "        X_fourier.iloc[i][feature_name] = features[feature_name]\n",
    "\n",
    "print(f\"Fourier features shape: {X_fourier.shape}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Applying Fourier anomaly detection (UNSUPERVISED)...\n",
      "Fourier anomalies detected: 300\n",
      "Fourier anomaly rate: 0.150\n",
      "\n",
      "Fourier detection complete - NO LABELS USED IN TRAINING!\n"
     ]
    }
   ],
   "source": [
    "def fourier_anomaly_detection(X_features, threshold_percentile=85):\n",
    "    \"\"\"UNSUPERVISED Fourier anomaly detection using Mahalanobis distance\"\"\"\n",
    "    scaler = StandardScaler()\n",
    "    X_scaled = scaler.fit_transform(X_features)\n",
    "    X_scaled = pd.DataFrame(X_scaled, columns=X_features.columns)\n",
    "    \n",
    "    mean_vector = X_scaled.mean()\n",
    "    cov_matrix = X_scaled.cov()\n",
    "    \n",
    "    try:\n",
    "        inv_cov_matrix = np.linalg.inv(cov_matrix.values)\n",
    "    except np.linalg.LinAlgError:\n",
    "        inv_cov_matrix = np.linalg.pinv(cov_matrix.values)\n",
    "    \n",
    "    anomaly_scores = []\n",
    "    for i in range(len(X_scaled)):\n",
    "        diff = X_scaled.iloc[i] - mean_vector\n",
    "        mahal_dist = np.sqrt(diff.T @ inv_cov_matrix @ diff)\n",
    "        anomaly_scores.append(mahal_dist)\n",
    "    \n",
    "    anomaly_scores = np.array(anomaly_scores)\n",
    "    threshold = np.percentile(anomaly_scores, threshold_percentile)\n",
    "    anomalies = anomaly_scores > threshold\n",
    "    \n",
    "    return anomalies, anomaly_scores, scaler\n",
    "\n",
    "print(\"Applying Fourier anomaly detection (UNSUPERVISED)...\")\n",
    "\n",
    "# Perform Fourier anomaly detection\n",
    "fourier_anomalies, fourier_scores, fourier_scaler = fourier_anomaly_detection(X_fourier)\n",
    "\n",
    "print(f\"Fourier anomalies detected: {fourier_anomalies.sum()}\")\n",
    "print(f\"Fourier anomaly rate: {fourier_anomalies.mean():.3f}\")\n",
    "print(\"\\nFourier detection complete - NO LABELS USED IN TRAINING!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fourier Transform Model Performance (Labels used ONLY for evaluation):\n",
      "Precision: 0.3833\n",
      "Recall: 0.5227\n",
      "F1-Score: 0.4423\n",
      "AUC: 0.7094\n",
      "\n",
      "Error Analysis:\n",
      "False Positives: 185 (normal classified as anomaly)\n",
      "False Negatives: 105 (anomaly missed)\n",
      "True Positives: 115 (anomaly correctly detected)\n",
      "True Negatives: 1595 (normal correctly classified)\n"
     ]
    }
   ],
   "source": [
    "# EVALUATION AND ERROR ANALYSIS\n",
    "# Now we use labels ONLY for evaluation and error analysis\n",
    "\n",
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "\n",
    "precision, recall, f1, _ = precision_recall_fscore_support(y_binary, fourier_anomalies, average='binary')\n",
    "auc = roc_auc_score(y_binary, fourier_anomalies)\n",
    "\n",
    "print(\"Fourier Transform Model Performance (Labels used ONLY for evaluation):\")\n",
    "print(f\"Precision: {precision:.4f}\")\n",
    "print(f\"Recall: {recall:.4f}\")\n",
    "print(f\"F1-Score: {f1:.4f}\")\n",
    "print(f\"AUC: {auc:.4f}\")\n",
    "\n",
    "# Calculate error types\n",
    "false_positives = (fourier_anomalies == 1) & (y_binary == 0)\n",
    "false_negatives = (fourier_anomalies == 0) & (y_binary == 1)\n",
    "true_positives = (fourier_anomalies == 1) & (y_binary == 1)\n",
    "true_negatives = (fourier_anomalies == 0) & (y_binary == 0)\n",
    "\n",
    "print(f\"\\nError Analysis:\")\n",
    "print(f\"False Positives: {false_positives.sum()} (normal classified as anomaly)\")\n",
    "print(f\"False Negatives: {false_negatives.sum()} (anomaly missed)\")\n",
    "print(f\"True Positives: {true_positives.sum()} (anomaly correctly detected)\")\n",
    "print(f\"True Negatives: {true_negatives.sum()} (normal correctly classified)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAPdCAYAAABlRyFLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1gUV9sG8HvpHQRBxAII2LFhb9jBKFZE1Ah2EzVo1BhNU5IoMXaNPQpG0dg1sWLvsYJdgggaYw1KB2XZ8/3ht/OywFIUWJH7d117vWHmzJlnZp45+D47nJEJIQSIiIiIiIiIiIiIiCgHLU0HQERERERERERERET0vmIRnYiIiIiIiIiIiIhIDRbRiYiIiIiIiIiIiIjUYBGdiIiIiIiIiIiIiEgNFtGJiIiIiIiIiIiIiNRgEZ2IiIiIiIiIiIiISA0W0YmIiIiIiIiIiIiI1GARnYiIiIiIiIiIiIhIDRbRiYiIiIiIiIiIiIjUYBGdiIiI6P/JZDLMmDFD02EUqyFDhsDBweGttm3Xrh3atWtXpPGUFSEhIZDJZIiNjdV0KO+92NhYyGQyhISEaCyGjz76CCNHjizUNmVh/CgLZsyYAZlMVix9Z2RkoEqVKli2bFmx9E9ERETFh0V0IiIi0ghlUTG3z9SpUzUdXrFTHuuIESNyXf/1119Lbf77778Sjk4zmjZtCplMhuXLl2s6lPfekCFDVO4ZExMTVKtWDd7e3ti+fTsUCsVb971v374SKQZv3LgRCxcuLPb9FNaZM2cQFhaGL7/8Ulp2/PhxteOVr69vscSxbNmyAn+REBcXhzlz5qBt27awtraGhYUFmjdvjs2bN+fa/tWrV/jyyy9hZ2cHQ0NDNGvWDIcOHcq17dmzZ9G6dWsYGRnB1tYWAQEBSE5OftvDKtN0dXUxceJEzJw5E+np6ZoOh4iIiApBR9MBEBERUdn2/fffw9HRUWVZ3bp1NRJLWloadHRK7p9HBgYG2L59O5YtWwY9PT2VdZs2bYKBgUGZKbRERUXh4sWLcHBwQGhoKD799FNNh/Te09fXx6+//grgTe7ev38ff/75J7y9vdGuXTvs3r0bZmZmhe533759WLp0abEX0jdu3IgbN25gwoQJKsvt7e2RlpYGXV3dYt2/OnPmzEHHjh3h7OycY11AQACaNGmiskz5lx1FPX4sW7YM5cuXx5AhQ/Jte+7cOXz99df46KOP8M0330BHRwfbt2+Hr68vbt26hcDAQJX2Q4YMwbZt2zBhwgS4uLggJCQEH330EY4dO4bWrVtL7SIiItCxY0fUqlUL8+fPx8OHDzF37lxERUVh//79RXasZcnQoUMxdepUbNy4EcOGDdN0OERERFRALKITERGRRnXt2hWNGzfW2P4VCgVev34NAwMDGBgYFFm/6enp0NPTg5aW+j/88/T0xB9//IH9+/ejZ8+e0vKzZ88iJiYGffv2xfbt24sspvfZhg0bYGNjg3nz5sHb2xuxsbFvPe1MWaGjo4OPP/5YZdmPP/6In376CdOmTcPIkSPVPon8PpPJZEV6LxbGs2fPsHfvXqxYsSLX9W3atIG3t3eu6woSc0pKCoyNjd8pxtzUqVMHUVFRsLe3l5aNGTMGnTp1wuzZszFlyhRpvxcuXMDvv/+OOXPmYPLkyQAAPz8/1K1bF1OmTMHZs2elPr766iuUK1cOx48fl76QcXBwwMiRIxEWFoYuXboU+bF86CwsLNClSxeEhISwiE5ERFSKcDoXIiIieq8dPXoUbdq0gbGxMSwsLNCzZ0/cvn1bpY26eb5zm9tWJpNh3LhxCA0NRZ06daCvr48DBw5I67I/ffvvv/9i2LBhqFChAvT19VGnTh2sXbtWpY1yqofff/8d33zzDSpVqgQjIyMkJibmeWyVKlVC27ZtsXHjRpXloaGhcHV1VftE/tatW+Hm5gZDQ0OUL18eH3/8Mf79998c7Xbt2oW6devCwMAAdevWxc6dO3PtT6FQYOHChahTpw4MDAxQoUIFjB49Gi9fvswz/qK0ceNGeHt7o3v37jA3N89xToD/Xc+7d+9iyJAhsLCwgLm5OYYOHYrU1FSVtnK5HD/88AOcnJygr68PBwcHfPXVV3j16pVKOwcHB3Tv3h3Hjx9H48aNYWhoCFdXVxw/fhwAsGPHDri6usLAwABubm4IDw9X2f7atWsYMmQIqlWrBgMDA9ja2mLYsGGIi4vL83j9/f1Rvnx5ZGRk5FjXpUsX1KhRoyCnLVdTp05Fly5dsHXrVvz9998q6/bv3y/dT6ampujWrRtu3rwprR8yZAiWLl0KACpTligVJlf2798Pd3d3mJqawszMDE2aNJGua7t27bB3717cv39f2ofyHlY3J3pBxoLC5Ehu9u7dC7lcjk6dOuXbNrvs44cyllu3bmHgwIEoV66c9JT3kydPMHToUFSuXBn6+vqoWLEievbsKc2Z7+DggJs3b+LEiRPS+cnrfQSOjo4qBXRlPL169cKrV69w7949afm2bdugra2NUaNGScsMDAwwfPhwnDt3Dv/88w8AIDExEYcOHcLHH3+s8hcNfn5+MDExwZYtW/I9J0uWLEGdOnVgZGSEcuXKoXHjxir39v379zFmzBjUqFEDhoaGsLKyQr9+/XK8O0A5/dfp06cREBAgTVkzevRovH79GvHx8fDz80O5cuVQrlw5TJkyBUIIaXtlTs2dOxcLFiyAvb09DA0N4e7ujhs3buR7HMCbL/qU466lpSV8fX2lc6UUFRWFvn37wtbWFgYGBqhcuTJ8fX2RkJCg0q5z5844ffo0Xrx4UaB9ExERkebxSXQiIiLSqISEhBxzfpcvXx4AcPjwYXTt2hXVqlXDjBkzkJaWhiVLlqBVq1a4cuXKWz+pfPToUWzZsgXjxo1D+fLl1fbz9OlTNG/eXCq8W1tbY//+/Rg+fDgSExNzTEPxww8/QE9PD5MnT8arV69yTNGSm4EDB2L8+PFITk6GiYkJ5HI5tm7diokTJ+Y6lUtISAiGDh2KJk2aICgoCE+fPsWiRYtw5swZhIeHw8LCAgAQFhaGvn37onbt2ggKCkJcXJxUtMtu9OjRUr8BAQGIiYnBL7/8gvDwcJw5c6bYp9U4f/487t69i+DgYOjp6aFPnz4IDQ3FV199lWt7Hx8fODo6IigoCFeuXMGvv/4KGxsbzJ49W2ozYsQIrFu3Dt7e3pg0aRLOnz+PoKAg3L59O8eXCXfv3sXAgQMxevRofPzxx5g7dy68vLywYsUKfPXVVxgzZgwAICgoCD4+PoiMjJT+wuDQoUO4d+8ehg4dCltbW9y8eROrVq3CzZs38ddff6l9QeHgwYPx22+/4eDBg+jevbu0/MmTJzh69CimT5/+Tud08ODBCAsLw6FDh1C9enUAwPr16+Hv7w8PDw/Mnj0bqampWL58OVq3bo3w8HA4ODhg9OjRePToEQ4dOoT169fn6LeguaJ8yrZOnTqYNm0aLCwsEB4ejgMHDmDgwIH4+uuvkZCQgIcPH2LBggUAABMTE7XHU9ixoCA5kpuzZ8/CysoqR0FaKSkpKcd4ZWlpmedfnPTr1w8uLi6YNWuWVNjt27cvbt68ic8++wwODg549uwZDh06hAcPHsDBwQELFy7EZ599BhMTE3z99dcAgAoVKuQZe26ePHkC4H9jKgCEh4ejevXqOab6adq0KYA3U7hUqVIF169fh1wuz/GXQnp6emjQoEGOL5SyW716NQICAuDt7Y3x48cjPT0d165dw/nz5zFw4EAAwMWLF3H27Fn4+vqicuXKiI2NxfLly9GuXTvcunULRkZGKn1+9tlnsLW1RWBgIP766y+sWrUKFhYWOHv2LKpWrYpZs2Zh3759mDNnDurWrQs/Pz+V7X/77TckJSVh7NixSE9Px6JFi9ChQwdcv349z/M7c+ZMfPvtt/Dx8cGIESPw/PlzLFmyBG3btpXG3devX8PDwwOvXr2S4vz333+xZ88exMfHw9zcXOrPzc0NQgicPXtW5f4nIiKi95ggIiIi0oDg4GABINePUoMGDYSNjY2Ii4uTll29elVoaWkJPz8/aZm/v7+wt7fPsY/p06eL7P/cASC0tLTEzZs3c7QHIKZPny79PHz4cFGxYkXx33//qbTz9fUV5ubmIjU1VQghxLFjxwQAUa1aNWlZfgCIsWPHihcvXgg9PT2xfv16IYQQe/fuFTKZTMTGxkrxP3/+XAghxOvXr4WNjY2oW7euSEtLk/ras2ePACC+++47aVmDBg1ExYoVRXx8vLQsLCxMAFA5V6dOnRIARGhoqEp8Bw4cyLHc3d1duLu7F+j4CmPcuHGiSpUqQqFQqMQZHh6u0k55PoYNG6ayvHfv3sLKykr6OSIiQgAQI0aMUGk3efJkAUAcPXpUWmZvby8AiLNnz0rLDh48KAAIQ0NDcf/+fWn5ypUrBQBx7NgxaVlu13vTpk0CgDh58qS0TJnvMTExQgghMjMzReXKlUX//v1Vtp0/f76QyWTi3r17uZ0qib+/vzA2Nla7Pjw8XAAQn3/+uRBCiKSkJGFhYSFGjhyp0u7JkyfC3NxcZfnYsWNz3DdCFDxX4uPjhampqWjWrJlKngohpGsshBDdunXL9b6NiYkRAERwcLC0rKBjQUFzRJ3WrVsLNze3HMuV93huH+U1zT5+KGMZMGCASl8vX74UAMScOXPyjKVOnTrvdL/FxcUJGxsb0aZNmxz9dujQIUf7mzdvCgBixYoVQgghtm7dmiOPlfr16ydsbW3z3H/Pnj1FnTp18myT2/1z7tw5AUD89ttv0jLl/ePh4aGSQy1atBAymUx88skn0jK5XC4qV66scu6UOWVoaCgePnwoLT9//rzKfSJEzt8bsbGxQltbW8ycOVMlzuvXrwsdHR1pufKe27p1a57HLIQQjx49EgDE7Nmz821LRERE7wdO50JEREQatXTpUhw6dEjlAwCPHz9GREQEhgwZAktLS6l9vXr10LlzZ+zbt++t9+nu7o7atWvn2UYIge3bt8PLywtCCPz333/Sx8PDAwkJCbhy5YrKNv7+/jA0NCxULOXKlYOnpyc2bdoE4M20Ji1btsz1SdhLly7h2bNnGDNmjMr8y926dUPNmjWxd+9eAP87d/7+/ipPP3bu3DnHcW/duhXm5ubo3LmzyjG6ubnBxMQEx44dK9TxFJZcLsfmzZvRv39/6antDh06wMbGBqGhoblu88knn6j83KZNG8TFxUnT5yhzY+LEiSrtJk2aBADSeVKqXbs2WrRoIf3crFkzKY6qVavmWJ51aoys1zs9PR3//fcfmjdvDgA58iMrLS0tDBo0CH/88QeSkpKk5aGhoWjZsmWOl+0WlvKpbmXfhw4dQnx8PAYMGKBynbW1tdGsWbMCXeeC5sqhQ4eQlJSEqVOn5pgnXN2T+Xl5m7EgvxxRJy4uDuXKlVO7/rvvvssxXtna2ubZZ/ZYDA0Noaenh+PHjxfblEkKhQKDBg1CfHw8lixZorIuLS0N+vr6ObZRXqu0tDSV/1XXVrleHQsLCzx8+BAXL15U2ybr/ZORkYG4uDg4OzvDwsIi1/tn+PDhKjnUrFkzCCEwfPhwaZm2tjYaN26scp8q9erVC5UqVZJ+btq0KZo1a5bn75MdO3ZAoVDAx8dHJe9tbW3h4uIi5b1yrD148GC+Uwcpcyz7XzUQERHR+4vTuRAREZFGNW3aNNcXi96/fx8Acp0bulatWjh48OBbv6SvIAXK58+fIz4+HqtWrcKqVatybfPs2bNC95ubgQMHYvDgwXjw4AF27dqFn3/+Odd2eZ2TmjVr4vTp0yrtXFxccrSrUaOGSnEqKioKCQkJsLGxyXWf2Y8xPy9evMDr16+lnw0NDVUK+dmFhYXh+fPnaNq0Ke7evSstb9++PTZt2oTZs2fnmCoja2Eb+F9B6uXLlzAzM8P9+/ehpaUFZ2dnlXa2trawsLCQzo+6/pTxVqlSJdflWQufL168QGBgIH7//fcc5yr7PMjZ+fn5Yfbs2di5cyf8/PwQGRmJy5cvq32pZWEkJycDAExNTQG8uc7Amy8GcpN9ao/cFDRXoqOjAUDtnP6F9TZjQX45kheRZS7t7FxdXQs9X3r2cUFfXx+zZ8/GpEmTUKFCBTRv3hzdu3eHn59fvgX5gvrss89w4MAB/Pbbb6hfv77KOkNDwxzvBgAgTR+lLGwr/1dd2/y+MPzyyy9x+PBhNG3aFM7OzujSpQsGDhyIVq1aSW3S0tIQFBSE4OBg/PvvvyrnPrf7pzD3am5fUOQ2JlavXj3P+d2joqIghMh1WwDSFEaOjo6YOHEi5s+fj9DQULRp0wY9evTAxx9/nGMMVB7n23ypRERERJrBIjoRERGVeuoKEZmZmbkuL8jT4gqFAgDw8ccfw9/fP9c29erVK3S/uenRowf09fXh7++PV69ewcfH5636eRsKhSLPp76tra0L1V+fPn1w4sQJ6Wd/f/8cL4jMSrlfdcd84sQJtG/fXmWZtrZ2rm2zFz8LWqBS119B9uPj44OzZ8/iiy++QIMGDWBiYgKFQgFPT08ph9SpXbs23NzcsGHDBvj5+WHDhg3Q09MrkuuvfFmi8osEZSzr16/PtVCro5P//y0o6lwpTgXNkeysrKyK/Onw3MaFCRMmwMvLC7t27cLBgwfx7bffIigoCEePHkXDhg3faX+BgYFYtmwZfvrpJwwePDjH+ooVK+b6IuLHjx8DAOzs7KR2WZdnb6tsp06tWrUQGRmJPXv24MCBA9i+fTuWLVuG7777DoGBgQDeFPuDg4MxYcIEtGjRAubm5pDJZPD19c31/inMvZrftS4ohUIBmUyG/fv357qfrHP5z5s3D0OGDMHu3bsRFhaGgIAABAUF4a+//lJ5H4Uyx7LOVU9ERETvNxbRiYiI6L2knM4kMjIyx7o7d+6gfPny0pOn5cqVQ3x8fI522Z84Lgxra2uYmpoiMzOz0E+eFpahoSF69eqFDRs2oGvXrmoLK1nPSfYniiMjI6X1yv9VPn2cvV1WTk5OOHz4MFq1avXWXwJkNW/ePJUiZF6FtpSUFOzevRv9+/eHt7d3jvUBAQEIDQ3NUUTPj729PRQKBaKiolCrVi1p+dOnTxEfH6/2pZGF9fLlSxw5cgSBgYH47rvvpOW5nXd1/Pz8MHHiRDx+/BgbN25Et27d8pxOpKDWr18PmUyGzp07A3hznQHAxsYm33xW9+VDQXNFua8bN27k+GuAguwnu8KMBe+qZs2a2L59e5H0lR8nJydMmjQJkyZNQlRUFBo0aIB58+Zhw4YNAN7uKeWlS5dixowZmDBhAr788stc2zRo0ADHjh1DYmKiylP558+fl9YDb/6SQEdHB5cuXVL5Yuf169eIiIgo0Jc9xsbG6N+/P/r374/Xr1+jT58+mDlzJqZNmwYDAwNs27YN/v7+mDdvnrRNenp6ruN5Ucjt3vz777/zfEm1k5MThBBwdHSUXtKbF1dXV7i6uuKbb77B2bNn0apVK6xYsQI//vij1CYmJgYAVMYnIiIier9xTnQiIiJ6L1WsWBENGjTAunXrVAoqN27cQFhYGD766CNpmZOTExISEnDt2jVp2ePHj7Fz58633r+2tjb69u2L7du3S0/1ZvX8+fO37js3kydPxvTp0/Htt9+qbdO4cWPY2NhgxYoVKlMs7N+/H7dv30a3bt0AqJ67rFMiHDp0CLdu3VLp08fHB5mZmfjhhx9y7E8ulxe6mOXm5oZOnTpJn7zmnt+5cydSUlIwduxYeHt75/h0794d27dvz3U6ibwoc2PhwoUqy+fPnw8A0nl6V8qnUrM/8Zp9v3kZMGAAZDIZxo8fj3v37uHjjz9+57h++uknhIWFoX///tIUFB4eHjAzM8OsWbOQkZGRY5us+awsSGe/9gXNlS5dusDU1BRBQUHSFCFKWc+VsbFxvlPeAIUbC95VixYt8PLly1zn0y4qqampOc6Lk5MTTE1NVXLd2Ni4UPff5s2bERAQgEGDBkm5nhtvb29kZmaqTFP16tUrBAcHo1mzZtLUKObm5ujUqRM2bNigMm//+vXrkZycjH79+uUZT1xcnMrPenp6qF27NoQQUg5qa2vnuH+WLFmi9q+I3tWuXbtUnsK/cOECzp8/j65du6rdpk+fPtDW1kZgYGCOWIUQ0nEmJiZCLperrHd1dYWWllaOMezy5cuQyWQq72IgIiKi9xufRCciIqL31pw5c9C1a1e0aNECw4cPR1paGpYsWQJzc3PMmDFDaufr64svv/wSvXv3RkBAAFJTU7F8+XJUr149z5c75uenn37CsWPH0KxZM4wcORK1a9fGixcvcOXKFRw+fBgvXrwogqN8o379+jnmLs5OV1cXs2fPxtChQ+Hu7o4BAwbg6dOnWLRoERwcHPD5559LbYOCgtCtWze0bt0aw4YNw4sXL7BkyRLUqVNHmi8bePOS1dGjRyMoKAgRERHo0qULdHV1ERUVha1bt2LRokW5PiVeFEJDQ2FlZYWWLVvmur5Hjx5YvXo19u7diz59+hS43/r168Pf3x+rVq1CfHw83N3dceHCBaxbtw69evUq9JPt6piZmaFt27b4+eefkZGRgUqVKiEsLEx6yrQgrK2t4enpia1bt8LCwqJQBX65XC49tZyeno779+/jjz/+wLVr19C+fXuVIqmZmRmWL1+OwYMHo1GjRvD19YW1tTUePHiAvXv3olWrVvjll18AvPkiBHjzlwAeHh7Q1taGr69vgXPFzMwMCxYswIgRI9CkSRMMHDgQ5cqVw9WrV5Gamop169ZJ+9m8eTMmTpyIJk2awMTEBF5eXrkea0HHgnfVrVs36Ojo4PDhwxg1alSR9ZvV33//jY4dO8LHxwe1a9eGjo4Odu7ciadPn8LX11dq5+bmhuXLl+PHH3+Es7MzbGxs1M5pf+HCBfj5+cHKygodO3bMMeVOy5YtUa1aNQBvXsbZr18/TJs2Dc+ePYOzszPWrVuH2NhYrFmzRmW7mTNnomXLlnB3d8eoUaPw8OFDzJs3D126dIGnp2eex9mlSxfY2tqiVatWqFChAm7fvo1ffvkF3bp1k+bq7969O9avXw9zc3PUrl0b586dw+HDh2FlZVXo81oQzs7OaN26NT799FO8evUKCxcuhJWVFaZMmaJ2GycnJ/z444+YNm0aYmNj0atXL5iamiImJgY7d+7EqFGjMHnyZBw9ehTjxo1Dv379UL16dcjlcqxfv176QjarQ4cOoVWrVsV2nERERFQMBBEREZEGBAcHCwDi4sWLebY7fPiwaNWqlTA0NBRmZmbCy8tL3Lp1K0e7sLAwUbduXaGnpydq1KghNmzYIKZPny6y/3MHgBg7dmyu+wIgpk+frrLs6dOnYuzYsaJKlSpCV1dX2Nraio4dO4pVq1ZJbY4dOyYAiK1btxbw6POOQ0kZ//Pnz1WWb968WTRs2FDo6+sLS0tLMWjQIPHw4cMc22/fvl3UqlVL6Ovri9q1a4sdO3YIf39/YW9vn6PtqlWrhJubmzA0NBSmpqbC1dVVTJkyRTx69Ehq4+7uLtzd3Qt8jHl5+vSp0NHREYMHD1bbJjU1VRgZGYnevXsLIdSfD2UuxcTESMsyMjJEYGCgcHR0FLq6uqJKlSpi2rRpIj09XWVbe3t70a1btxz7zu36xMTECABizpw50rKHDx+K3r17CwsLC2Fubi769esnHj16lCOXcotRacuWLQKAGDVqlNpzkZ2/v78AIH2MjIyEg4OD6Nu3r9i2bZvIzMzMdbtjx44JDw8PYW5uLgwMDISTk5MYMmSIuHTpktRGLpeLzz77TFhbWwuZTJbjHipIrgghxB9//CFatmwp3btNmzYVmzZtktYnJyeLgQMHCgsLCwFAykvleQ4ODlbpryBjQWFyRJ0ePXqIjh075jhv+d3j2a+5ulj+++8/MXbsWFGzZk1hbGwszM3NRbNmzcSWLVtU2j158kR069ZNmJqaCgB53nvK41P3yX4u09LSxOTJk4Wtra3Q19cXTZo0EQcOHMi171OnTomWLVsKAwMDYW1tLcaOHSsSExPVxqK0cuVK0bZtW2FlZSX09fWFk5OT+OKLL0RCQoLU5uXLl2Lo0KGifPnywsTERHh4eIg7d+4Ie3t74e/vn+P4sv++UHeO/f39hbGxsfRz1nt33rx5okqVKkJfX1+0adNGXL16Ndc+s9u+fbto3bq1MDY2FsbGxqJmzZpi7NixIjIyUgghxL1798SwYcOEk5OTMDAwEJaWlqJ9+/bi8OHDKv3Ex8cLPT098euvv+Z7DomIiOj9IROiiN64QkREREREhbZ792706tULJ0+eRJs2bTQdTpl36tQptGvXDnfu3JGmw6HSLTY2Fo6OjpgzZw4mT56s0VgWLlyIn3/+GdHR0UXyHgoiIiIqGZwTnYiIiIhIg1avXo1q1aqhdevWmg6FALRp0wZdunTBzz//rOlQ6AOTkZGB+fPn45tvvmEBnYiIqJThnOhERERERBrw+++/49q1a9i7dy8WLVoEmUym6ZDo/+3fv1/TIdAHSFdXFw8ePNB0GERERPQWWEQnIiIiItKAAQMGwMTEBMOHD8eYMWM0HQ4REREREanBOdGJiIiIiIiIiIiIiNTgnOhERERERERERERERGqwiE5EREREREREREREpAaL6EREREREGhISEgKZTIbY2FhpWbt27dCuXTuNxaQJM2bMKJMvVpXJZJgxY4b0c275oGnZYyzrst+fsbGxkMlkCAkJ0VhMREREVPxYRCciIqISExMTg3HjxqF69eowMjKCkZERateujbFjx+LatWuaDu+9cvz4cfTp0we2trbQ09ODjY0NvLy8sGPHDk2H9lb27dv31oW4pk2bQiaTYfny5UUbFOVJWdhWfnR1deHg4ICAgADEx8drOrx3lv34lOPRN998g8TERE2HVygbN27EwoULNR0GAOD27duQyWQwMDD4IPKEiIiICAB0NB0AERERlQ179uxB//79oaOjg0GDBqF+/frQ0tLCnTt3sGPHDixfvhwxMTGwt7fXdKgaN336dHz//fdwcXHB6NGjYW9vj7i4OOzbtw99+/ZFaGgoBg4cqOkwC2Xfvn1YunRpoQvpUVFRuHjxIhwcHBAaGopPP/20eAJ8j4SFhWk6BBXLly+HiYkJUlJScOTIESxZsgRXrlzB6dOnNR1akVAeX3JyMsLCwjBz5kwcPXoUZ86cKfGn4wcPHgxfX1/o6+sXaruNGzfixo0bmDBhQvEEVggbNmyAra0tXr58iW3btmHEiBGaDqlY2dvbIy0tDbq6upoOhYiIiIoRi+hERERU7KKjo+Hr6wt7e3scOXIEFStWVFk/e/ZsLFu2DFpaef+RXEpKCoyNjYszVI3btm0bvv/+e3h7e2Pjxo0qhZkvvvgCBw8eREZGxjvvRy6XQ6FQQE9PL8e69+k8b9iwATY2Npg3bx68vb0RGxsLBwcHTYdVrHK7Jprk7e2N8uXLAwBGjx4NX19fbN68GRcuXEDTpk01HN27y3p8n3zyCfr27YsdO3bgr7/+QosWLXLdJjU1FUZGRkUei7a2NrS1tYu835IihMDGjRsxcOBAxMTEIDQ09IMvoiufuiciIqIPG6dzISIiomL3888/IyUlBcHBwTkK6ACgo6ODgIAAVKlSRVo2ZMgQmJiYIDo6Gh999BFMTU0xaNAgAIBCocDChQtRp04dGBgYoEKFChg9ejRevnyZo+/9+/ejTZs2MDY2hqmpKbp164abN2+qtFHu699//0WvXr1gYmICa2trTJ48GZmZmUV8NvL27bffwtLSEmvXrs31yUYPDw90795d+vnZs2cYPnw4KlSoAAMDA9SvXx/r1q1T2UY5Z+/cuXOxcOFCODk5QV9fH7du3ZKmtLh16xYGDhyIcuXKoXXr1tK2GzZsgJubGwwNDWFpaQlfX1/8888/OeI6f/48PvroI5QrVw7GxsaoV68eFi1aBODN+V26dCkAqEyfURAbN26Et7c3unfvDnNzc2zcuDFHG+Ux3L17F0OGDIGFhQXMzc0xdOhQpKamqrSVy+X44YcfpHPg4OCAr776Cq9evVJp5+DggO7du+P48eNo3LgxDA0N4erqiuPHjwMAduzYAVdXVxgYGMDNzQ3h4eEq21+7dg1DhgxBtWrVYGBgAFtbWwwbNgxxcXH5HnNuc6K/evUK06dPh7OzM/T19VGlShVMmTIlR9yHDh1C69atYWFhARMTE9SoUQNfffVVvvssjDZt2gB48+VYVufPn4enpyfMzc1hZGQEd3d3nDlzJsf2p0+fRpMmTWBgYAAnJyesXLmySON7Vx06dADwZvop4M31qFu3Li5fvoy2bdvCyMhIOqcFvS6vXr3C559/Dmtra5iamqJHjx54+PBhjn2rmxN9//79cHd3h6mpKczMzNCkSRPpXmjXrh327t2L+/fvS/dW1i+aijrGvJw5cwaxsbHw9fWFr68vTp48mWsfyvvr9OnTaNq0KQwMDFCtWjX89ttvOdreu3cP/fr1g6WlJYyMjNC8eXPs3btXpc3x48chk8mwZcsWBAYGolKlSjA1NYW3tzcSEhLw6tUrTJgwATY2NjAxMcHQoUNzHH9wcDA6dOgAGxsb6Ovro3bt2gWaQkrdnOh37tyBt7c3LC0tYWBggMaNG+OPP/5QaZORkYHAwEC4uLjAwMAAVlZWaN26NQ4dOpTvfomIiKhk8Ul0IiIiKnZ79uyBs7MzmjVrVqjt5HI5PDw80Lp1a8ydO1d68nP06NEICQnB0KFDERAQgJiYGPzyyy8IDw/HmTNnpOLz+vXr4e/vDw8PD8yePRupqalYvnw5WrdujfDwcJVCU2ZmJjw8PNCsWTPMnTsXhw8fxrx58+Dk5JTvFCLJyclIT0/P93h0dXVhbm6udn1UVBTu3LmDYcOGwdTUNN/+0tLS0K5dO9y9exfjxo2Do6Mjtm7diiFDhiA+Ph7jx49XaR8cHIz09HSMGjUK+vr6sLS0lNb169cPLi4umDVrFoQQAICZM2fi22+/hY+PD0aMGIHnz59jyZIlaNu2LcLDw2FhYQHgTeG2e/fuqFixIsaPHw9bW1vcvn0be/bswfjx4zF69Gg8evQIhw4dwvr16/M9LqXz58/j7t27CA4Ohp6eHvr06YPQ0FC1RWEfHx84OjoiKCgIV65cwa+//gobGxvMnj1bajNixAisW7cO3t7emDRpEs6fP4+goCDcvn0bO3fuVOnv7t27GDhwIEaPHo2PP/4Yc+fOhZeXF1asWIGvvvoKY8aMAQAEBQXBx8cHkZGR0l9THDp0CPfu3cPQoUNha2uLmzdvYtWqVbh58yb++uuvQk0TolAo0KNHD5w+fRqjRo1CrVq1cP36dSxYsAB///03du3aBQC4efMmunfvjnr16uH777+Hvr4+7t69m2sh+10oC7zlypWTlh09ehRdu3aFm5sbpk+fDi0tLakoeerUKemJ9evXr6NLly6wtrbGjBkzIJfLMX36dFSoUKFA+05NTc3xxUhutLW1VeIrDOWXA1ZWVtKyuLg4dO3aFb6+vvj4449RoUKFAl8X4E3ebdiwAQMHDkTLli1x9OhRdOvWrUDxhISEYNiwYahTpw6mTZsGCwsLhIeH48CBAxg4cCC+/vprJCQk4OHDh1iwYAEAwMTEBEDBc+ddY1QKDQ2Fk5MTmjRpgrp168LIyAibNm3CF198kaPt3bt34e3tjeHDh8Pf3x9r167FkCFD4Obmhjp16gAAnj59ipYtWyI1NRUBAQGwsrLCunXr0KNHD2zbtg29e/dW6TMoKAiGhoaYOnUq7t69iyVLlkBXVxdaWlp4+fIlZsyYgb/++gshISFwdHTEd999J227fPly1KlTBz169ICOjg7+/PNPjBkzBgqFAmPHji3Uebh58yZatWqFSpUqYerUqTA2NsaWLVvQq1cvbN++XYp7xowZCAoKwogRI9C0aVMkJibi0qVLuHLlCjp37lyofRIREVExE0RERETFKCEhQQAQvXr1yrHu5cuX4vnz59InNTVVWufv7y8AiKlTp6psc+rUKQFAhIaGqiw/cOCAyvKkpCRhYWEhRo4cqdLuyZMnwtzcXGW5cl/ff/+9StuGDRsKNze3fI9RuX1+H3d39zz72b17twAgFixYkO8+hRBi4cKFAoDYsGGDtOz169eiRYsWwsTERCQmJgohhIiJiREAhJmZmXj27JlKH9OnTxcAxIABA1SWx8bGCm1tbTFz5kyV5devXxc6OjrScrlcLhwdHYW9vb14+fKlSluFQiH999ixY0Vh/+k5btw4UaVKFamfsLAwAUCEh4fnegzDhg1TWd67d29hZWUl/RwRESEAiBEjRqi0mzx5sgAgjh49Ki2zt7cXAMTZs2elZQcPHhQAhKGhobh//760fOXKlQKAOHbsmLQsay4rbdq0SQAQJ0+elJYFBwcLACImJkZa5u7urpIr69evF1paWuLUqVMq/a1YsUIAEGfOnBFCCLFgwQIBQDx//jzHvt+G8rxGRkaK58+fi9jYWLF27VphaGgorK2tRUpKihDizXV2cXERHh4eKtc8NTVVODo6is6dO0vLevXqJQwMDFTO361bt4S2tnaB8kMZU34fe3v7Qh9fTEyMWLlypdDX1xcVKlSQjs/d3V0AECtWrFDZvqDXRZl3Y8aMUWk3cOBAAUBMnz5dWpY9H+Lj44Wpqalo1qyZSEtLU9k+67nu1q1brsdcHDGq8/r1a2FlZSW+/vprle3r16+fo63y/sp6Lzx79kzo6+uLSZMmScsmTJggAKjEn5SUJBwdHYWDg4PIzMwUQghx7NgxAUDUrVtXvH79Wmo7YMAAIZPJRNeuXVX236JFixznK7d71sPDQ1SrVk1lWfb7Uzm+BgcHS8s6duwoXF1dRXp6urRMoVCIli1bChcXF2lZ/fr1Rbdu3XLsl4iIiN4/nM6FiIiIilViYiKA/z0ZmVW7du1gbW0tfZRTfmSV/SnwrVu3wtzcHJ07d8Z///0nfdzc3GBiYoJjx44BePMkcHx8PAYMGKDSTltbG82aNZPaZfXJJ5+o/NymTRvcu3cv32OcMmUKDh06lO9n3rx5efajPFcFeQodePOyTltbWwwYMEBapquri4CAACQnJ+PEiRMq7fv27Qtra+tc+8p+7Dt27IBCoYCPj4/K+bO1tYWLi4t0/sLDwxETE4MJEyZIT6YrvctLGeVyOTZv3oz+/ftL/SinWggNDS3QMbRp0wZxcXHSed23bx8AYOLEiSrtJk2aBAA5poioXbu2ypzYyr+k6NChA6pWrZpjedZcMTQ0lP47PT0d//33H5o3bw4AuHLlSp7Hnt3WrVtRq1Yt1KxZU+VaKKcdUV4L5fnfvXs3FApFofaRlxo1asDa2hoODg4YNmwYnJ2dsX//fukvQyIiIhAVFYWBAwciLi5Oii8lJQUdO3bEyZMnoVAokJmZiYMHD6JXr14q569WrVrw8PAoUCx+fn4FutfU5Uhex+fo6IjRo0fD2dkZe/fuVZnzXF9fH0OHDlXZrqDXRZl3AQEBKtsX5CWghw4dQlJSEqZOnZpj3u2C3F8lEaPS/v37ERcXpzIeDRgwAFevXs0xhRbw5v5STg0EANbW1qhRo4bKfbRv3z40bdpUZYopExMTjBo1CrGxsbh165ZKn35+firTYDVr1gxCCAwbNkylXbNmzfDPP/9ALpdLy7LeswkJCfjvv//g7u6Oe/fuISEhocDn4cWLFzh69Ch8fHyQlJQknfO4uDh4eHggKioK//77L4A39+zNmzcRFRVV4P6JiIhIMzidCxERERUrZUE4OTk5x7qVK1ciKSkJT58+xccff5xjvY6ODipXrqyyLCoqCgkJCbCxscl1f8+ePZPaAf+b3zg7MzMzlZ8NDAxyFJjLlSuX6zzr2dWuXRu1a9fOt11+lDElJSUVqP39+/fh4uKS44WstWrVktZn5ejoqLav7OuioqIghICLi0uu7ZWFKuXUF3Xr1i1QzAUVFhaG58+fo2nTprh79660vH379ti0aRNmz56d47izFmaB/0038vLlS5iZmeH+/fvQ0tKCs7OzSjtbW1tYWFjkOF/Z+1NOxZN17v6sy7PmyosXLxAYGIjff/9dykmlwhTkgDfX4vbt22q/AFH2379/f/z6668YMWIEpk6dio4dO6JPnz7w9vbO96W9edm+fTvMzMzw/PlzLF68GDExMSoFR+W95u/vr7YP5bzUaWlpueZUjRo1pEJuXqpVq4Zq1aq9xVGopzw+XV1dVK5cGU5OTjnaVKpUKccLXwt6XZR5l73fGjVq5Bvbu95fJRGj0oYNG+Do6ChNIwQATk5OMDIyQmhoKGbNmqXSPvv9BeQcc+/fv5/rNGBZx7is56Yw96xCoUBCQoI0bc+ZM2cwffp0nDt3LseUQQkJCXlOxZXV3bt3IYTAt99+i2+//TbXNs+ePUOlSpXw/fffo2fPnqhevTrq1q0LT09PDB48GPXq1SvQvoiIiKjksIhORERExcrc3BwVK1bEjRs3cqxTFkeyv0RPSV9fP0fxT6FQ5Pk0srJYpHwSd/369bC1tc3RTkdH9Z9B2traeR9IHhISEpCWlpZvOz09PZV5yLOrWbMmgDfzRheHrIXP/NYpFArIZDLs378/13OT218WFCXl9fXx8cl1/YkTJ9C+fXuVZequofj/Od6VCvqEvLr+CrIfHx8fnD17Fl988QUaNGgAExMTKBQKeHp6FvopcYVCAVdXV8yfPz/X9coCoaGhIU6ePIljx45h7969OHDgADZv3owOHTogLCzsrXO8bdu2KF++PADAy8sLrq6uGDRoEC5fvgwtLS3peObMmYMGDRrk2oeJiUmOFzm+jeTk5Fy/kMtOW1tbbeE4u6zHp05u905Br4smlVSMiYmJ+PPPP5Genp7rlyQbN27EzJkzVe69gt6vhfG292x0dDQ6duyImjVrYv78+ahSpQr09PSwb98+LFiwoFD3rLLt5MmT1f6FhfKLvLZt2yI6Ohq7d+9GWFgYfv31VyxYsAArVqzAiBEjCrxPIiIiKn4sohMREVGx69atG3799VdcuHBBesHg23JycsLhw4fRqlWrPIvCyicqbWxs0KlTp3faZ37Gjx+PdevW5dvO3d0dx48fV7u+evXqqFGjBnbv3o1FixblW6i2t7fHtWvXoFAoVL5suHPnjrT+bTk5OUEIAUdHR1SvXj3PdgBw48aNPM9zYaZ2SUlJwe7du9G/f394e3vnWB8QEIDQ0NAcRfT82NvbQ6FQICoqSnqSFXjz8sL4+Ph3Ol9ZvXz5EkeOHEFgYKDKiwvfdsoGJycnXL16FR07dsz3PGppaaFjx47o2LEj5s+fj1mzZuHrr7/GsWPHiuQ+MDExwfTp0zF06FBs2bIFvr6+Ug6YmZnluQ9ra2sYGhrmeh4iIyMLtP+5c+ciMDAw33b29vZqv5wrKgW9Lsq8i46OVnmyuyDHnPX+yv4XFFmp239JxAi8mf4pPT0dy5cvz/GFRGRkJL755hucOXNGZVqWgrC3t881hqIY47L6888/8erVK/zxxx8qT7PnNu1XfpR/KaGrq1uge87S0hJDhw7F0KFDkZycjLZt22LGjBksohMREb1nOCc6ERERFbspU6bAyMgIw4YNw9OnT3OsL8yThz4+PsjMzMQPP/yQY51cLkd8fDwAwMPDA2ZmZpg1axYyMjJytH3+/HnBDyAfRTUnOgAEBgYiLi4OI0aMUJmvVyksLAx79uwBAHz00Ud48uQJNm/eLK2Xy+VYsmQJTExM4O7u/tbH1KdPH2hrayMwMDDH9RFCIC4uDgDQqFEjODo6YuHChdK5z9pOydjYGABytMnNzp07kZKSgrFjx8Lb2zvHp3v37ti+fXuhn2z+6KOPAAALFy5UWa58Srdbt26F6k8d5VOv2c9b9v0WlI+PD/7991+sXr06x7q0tDSkpKQAeDOFTHbKJ8OL4ilwpUGDBqFy5cqYPXs2AMDNzQ1OTk6YO3durk+JK+81bW1teHh4YNeuXXjw4IG0/vbt2zh48GCB9l0cc6K/rYJel65duwIAFi9erNKmIPnQpUsXmJqaIigoCOnp6Srrst9fuU0TVBIxAm+mcqlWrRo++eSTHPfr5MmTYWJi8lbX5KOPPsKFCxdw7tw5aVlKSgpWrVoFBweHIplGC8j9nk1ISEBwcHCh+7KxsUG7du2wcuVKPH78OMf6rL97lOOokomJCZydnYv0fiUiIqKiwSfRiYiIqNi5uLhg48aNGDBgAGrUqIFBgwahfv36EEIgJiYGGzduhJaWVo75z3Pj7u6O0aNHIygoCBEREejSpQt0dXURFRWFrVu3YtGiRfD29oaZmRmWL1+OwYMHo1GjRvD19YW1tTUePHiAvXv3olWrVvjll1+K5PiKak504M281tevX8fMmTMRHh6OAQMGwN7eHnFxcThw4ACOHDmCjRs3AgBGjRqFlStXYsiQIbh8+TIcHBywbds2nDlzBgsXLizwC0pz4+TkhB9//BHTpk1DbGwsevXqBVNTU8TExGDnzp0YNWoUJk+eDC0tLSxfvhxeXl5o0KABhg4diooVK+LOnTu4efOmVBx1c3MD8OYpcg8PD2hra8PX1zfXfYeGhsLKygotW7bMdX2PHj2wevVq7N27F3369CnwMdWvXx/+/v5YtWoV4uPj4e7ujgsXLmDdunXo1atXoZ9sV8fMzAxt27bFzz//jIyMDFSqVAlhYWGIiYl5q/4GDx6MLVu24JNPPsGxY8fQqlUrZGZm4s6dO9iyZQsOHjyIxo0b4/vvv8fJkyfRrVs32Nvb49mzZ1i2bBkqV66s8gRwu3btcOLEibeeNkNXVxfjx4/HF198gQMHDsDT0xO//vorunbtijp16mDo0KGoVKkS/v33Xxw7dgxmZmb4888/Abz5kujAgQNo06YNxowZI33pU6dOHVy7di3ffRfHnOhvq6DXpUGDBhgwYACWLVuGhIQEtGzZEkeOHFGZ618dMzMzLFiwACNGjECTJk0wcOBAlCtXDlevXkVqaqr0FzBubm7YvHkzJk6ciCZNmsDExAReXl4lEuOjR49w7NixHC8lVdLX14eHhwe2bt2KxYsXq7z4Mz9Tp07Fpk2b0LVrVwQEBMDS0hLr1q1DTEwMtm/f/k5z/WfVpUsX6OnpwcvLC6NHj0ZycjJWr14NGxubXAvh+Vm6dClat24NV1dXjBw5EtWqVcPTp09x7tw5PHz4EFevXgXw5ndHu3bt4ObmBktLS1y6dAnbtm3DuHHjiuS4iIiIqAgJIiIiohJy9+5d8emnnwpnZ2dhYGAgDA0NRc2aNcUnn3wiIiIiVNr6+/sLY2NjtX2tWrVKuLm5CUNDQ2FqaipcXV3FlClTxKNHj1TaHTt2THh4eAhzc3NhYGAgnJycxJAhQ8SlS5fy3df06dOFpv65dOTIEdGzZ09hY2MjdHR0hLW1tfDy8hK7d+9Waff06VMxdOhQUb58eaGnpydcXV1FcHCwSpuYmBgBQMyZMyfHfpTH+Pz581zj2L59u2jdurUwNjYWxsbGombNmmLs2LEiMjJSpd3p06dF586dhampqTA2Nhb16tUTS5YskdbL5XLx2WefCWtrayGTydSe16dPnwodHR0xePBgtecmNTVVGBkZid69e+d5DMHBwQKAiImJkZZlZGSIwMBA4ejoKHR1dUWVKlXEtGnTRHp6usq29vb2olu3bjn2DUCMHTtWZVlu5/fhw4eid+/ewsLCQpibm4t+/fqJR48eCQBi+vTpecbo7u4u3N3dVfbx+vVrMXv2bFGnTh2hr68vypUrJ9zc3ERgYKBISEgQQvwvZ+zs7ISenp6ws7MTAwYMEH///bdKX25ubsLW1jb3k5tFXrmRkJAgzM3NVeIMDw8Xffr0EVZWVkJfX1/Y29sLHx8fceTIEZVtT5w4Idzc3ISenp6oVq2aWLFihUbutfxyX8nd3V3UqVMn13UFuS5CCJGWliYCAgKElZWVMDY2Fl5eXuKff/4pUD4IIcQff/whWrZsKQwNDYWZmZlo2rSp2LRpk7Q+OTlZDBw4UFhYWAgAwt7evthizG7evHkCQI7rnFVISIgAII1f6u6v3HI/OjpaeHt7CwsLC2FgYCCaNm0q9uzZo9Lm2LFjAoDYunWrynLl+bx48aLK8tyu/R9//CHq1asnDAwMhIODg5g9e7ZYu3Ztvven8v7PPu5GR0cLPz8/YWtrK3R1dUWlSpVE9+7dxbZt26Q2P/74o2jatKmwsLCQfh/OnDlTvH79Wu25JCIiIs2QCfEOb24hIiIiIqJSIykpCZaWlli4cCHGjh2r6XCIiIiIiEoFzolORERERFRGnDx5EpUqVcLIkSM1HQoRERERUanBJ9GJiIiIiIiIiIiIiNTgk+hERERERERERERERGqwiE5EREREREREREREpAaL6EREREREREREREREauhoOoCSplAo8OjRI5iamkImk2k6HCIiIiIiIiIiIiLSACEEkpKSYGdnBy0t9c+bl7ki+qNHj1ClShVNh0FERERERERERERE74F//vkHlStXVru+zBXRTU1NAbw5MWZmZhqORjMUCgWeP38Oa2vrPL9hIXpfMGeptGHOUmnEvKXShjlLpRHzlkob5iyVNsxZKqzExERUqVJFqhmrU+aK6MopXMzMzMp0ET09PR1mZmYcUKhUYM5SacOcpdKIeUulDXOWSiPmLZU2zFkqbZiz9Lbym/ab2UREREREREREREREpAaL6EREREREREREREREarCITkRERERERERERESkRpmbE52IiIiIiIiIiKioZWZmIiMjQ9NhlGkKhQIZGRlIT0/nnOgEANDV1YW2tvY798MiOhERERERERER0VsSQuDJkyeIj4/XdChlnhACCoUCSUlJ+b4oksoOCwsL2NravlNOsIhORERERERERET0lpQFdBsbGxgZGbF4q0FCCMjlcujo6PA6EIQQSE1NxbNnzwAAFStWfOu+WEQnIiIiIiIiIiJ6C5mZmVIB3crKStPhlHksolN2hoaGAIBnz57Bxsbmrad24eRAREREREREREREb0E5B7qRkZGGIyEidZT357u8s4BFdCIiIiIiIiIionfAp56J3l9FcX+yiE5EREREREREREREpAaL6EREREREREREREREarCITkRERERERERE9J6QK+SaDuG9IJPJsGvXLk2HUawcHBywcOFC6eeSOOY1a9agS5cuxbqP4jB16lR89tlnGts/i+hERERERERERETvgWtPr6F9SHtce3qtxPZ57tw5aGtro1u3boXeNnsRWBPeJf73zePHj9G1a9di6z89PR3ffvstpk+frrI8MTER3377LerUqQNDQ0NYWVmhSZMm+Pnnn/Hy5ctii6cwJk+ejHXr1uHevXsa2T+L6ERERERERERERO+BpReW4ubzm1h6YWmJ7XPNmjX47LPPcPLkSTx69KjE9ltUSnv8Wdna2kJfX7/Y+t+2bRvMzMzQqlUradmLFy/QvHlzBAcHY/LkyTh//jyuXLmCmTNnIjw8HBs3blTb3+vXr4st1uzKly8P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167A8eRm/vz5KFeuHFq2bAkvLy94eHigUaNGBd7eyMgIJ0+eRNWqVdGnTx/UqlULw4cPR3p6OszMzGBkZIQ7d+6gb9++qF69OkaNGoWxY8di9OjRavscPnw49u3bh4SEBGmZlZUVLly4AD8/P8yZMwdNmzaFq6srZsyYgf79+2P16tV5xlmvXj2cOHECf//9N9q0aYOGDRviu+++U5lmJzg4GH5+fpg0aRJq1KiBXr164eLFi9K0MQX1+++/Y+TIkYXapqjIRPbJZT5wiYmJMDc3R0JCAszMzDQdjkYoFAo8e/YMNjY20NLi9yj0/mPOUmnDnKXSiHlLpQ1zlkoj5i2VNszZ/KWnpyMmJgaOjo4FemFjVgqhQPNfmyMuLS7ftlaGVvhrxF/QkvE65EUIAblcDh0dnRxP9tMb/fr1Q6NGjTBt2jRNh1Io+/fvx6RJk3Dt2jXo6BTuNZ953acFrRXzxaJEREREREREREQlTEumhWP+x5CSkZJvW2NdYxbQqUjMmTMHf/75p6bDKLSUlBQEBwcXuoBeVFhEJyIiIiIiIiIi0gBjPWMY6xlrOgwqQxwcHPDZZ59pOoxC8/b21uj++RUWEREREREREREREZEaLKITEREREREREREREanBIjoRERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITERERERERERFpwoMHwJ07+X8ePNB0pO9kyJAh6NWrl/Rzu3btMGHChBKP4/jx45DJZIiPjy/xfZeU2NhYyGQyREREACi5Yx48eDBmzZpVrPsAgJCQEFhYWEg/r1ixAl5eXsW+XxbRiYiIiIiIiIiIStqDB4CnJ+Dhkf/H07PIC+lDhgyBTCaDTCaDnp4enJ2d8f3330MulxfpfnKzY8cO/PDDDwVqq6nCd1BQELS1tTFnzpwS3W9Ra9myJR4/fgxzc/Ni28fVq1exb98+BAQESMvatWsn5ZeBgQGqV6+OoKAgCCGKdN/Dhg3DlStXcOrUqSLtNzuNFtFPnjwJLy8v2NnZQSaTYdeuXQXe9syZM9DR0UGDBg2KLT4iIiIiIiIiIqJikZoKpKQAenqAqan6j57em3apqUUegqenJx4/foyoqChMmjQJM2bMUFs0fv36dZHt19LSEqam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PD09sW/fPjg6OgJ4MzXJ9u3bsWvXLtSvXx8rVqzArFmz1Mbw+vVrbNiwAX379s11fd++ffHbb78hIyOjQOfqp59+Qt++fTF48GA0atQId+/excGDB1XmUS8sLS0t/P7777h8+TLq1q2Lzz//HHPmzClUH/Xq1cOJEyfw999/o02bNmjYsCG+++476eWeFhYW2LFjBzp06IBatWphxYoV2LRpU465y7MaMWJErlP8ZGdpaQk/Pz/MmDFDmiLHz88PkyZNQo0aNdCrVy9cvHhRerFs8+bNsXr1aixatAj169dHWFgYvvnmmxz9btq0CSNHjizUeSgsmRB5vf63eB0/fhzt27fPsdzf3x8hISEYMmQIYmNjcfz48Vy3nzFjBnbt2iUV4QsiMTER5ubmSEhIKNMvFn327BlsbGw4pxmVCsxZKm2Ys1QaMW+ptGHOUmnEvKXShjmbv/T0dMTExMDR0bHALyiUPHgAeHoC/18szpOxMXDgAPD/xUXKnXI6Fx0dncLPUU9vLS0tDTVq1MDmzZvRokWLEt33zZs30aFDB/z9998wNzfPtU1e92lBa8UanRO9Xbt2yKuGn9+fWMyYMQMzZswo2qCIiIiIiIiIiIiKW9Wqbwrjqan5tzUyYgGd3luGhob47bff8N9//5X4vh8/fozffvtNbQG9qJSaF4sSERERERERERF9UFgYpw9Eu3btNLLf3F5GWxz4tzhERERERERERERERGqwiE5EREREREREREREpAaL6EREREREREREREREarCITkRERERERERERESkBovoRERERERERERERERqsIhORERERERERERU0jLTi7c9ERUZFtGJiIiIiIiIiIhKUkwocKQDkPqoYO1TH71pHxNavHERUa5YRCciIiIiIiIiIiopmelA1FIgJRY41Tf/QnrqozftUmLfbPcePJEeEhICCwsLTYfx1mQyGXbt2pVnmyFDhqBXr14lEg+9/1hEJyIiIiIiIiIiKinaBkDrbYCRPZB6P+9CurKAnnr/TfvW295sXwSGDBkCmUyW43P37t0i6f9dhISESPFoaWmhcuXKGDp0KJ49e1Yk/T9+/Bhdu3YFAMTGxkImkyEiIkKlzaJFixASElIk+6PSj0V0IiIiIiIiIiKikmRkB7TZnnchPXsBvc32N9sVIU9PTzx+/Fjl4+joWKT7eFtmZmZ4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Hx907doVgYGBAIB69erhxIkT+Pvvv9GmTRs0bNgQ3333Hezs7AoVl/JlnFkZGRnh5MmTqFq1Kvr06YPatWtj9OjRSE9Ph5mZGYA3RfwBAwbAz88PLVq0kOZkNzAwAABoaWnh999/x+XLl1G3bl18/vnnmDNnjsp+dHR0sHjxYqxcuRJ2dnbo2bOn2jg7dOgAS0vLXKeU8fDwwJ49exAWFoYmTZqgefPmWLBggVQkt7CwwOrVq9GqVSvUq1cPhw8fxp9//gkrK6tCnSsqejIhhNB0ECUpMTER5ubmSEhIkG6mskahUODZs2ewsbGR/iyH6H3GnKXShjlLpRHzlkob5iyVRsxbKm2Ys/lLT09HTEwMHB0dpaJsQeVWQM86dUt+6ymn3KZzyU6hUKBWrVrw8fHBDz/8UMIRkibkdZ8WtFbMEZCIiIiIiIiIiKgEFaRAbmpnqtEn0j8U9+/fx+rVq/H333/j+vXr+PTTTxETE1OoF48SsYhORERERERERERUQuTpcmzxLtgT5jkK6d5bIE+Xl3DEpZuWlhZCQkLQpEkTtGrVCtevX8fhw4elOduJCkJH0wEQERERERERERGVFToGOmgytgkuLr0In235T9GiLKRv8d6CJmObQMeA5bzCqFKlCs6cOaPpMKiU411HRERERERERERUguoNqofafWsXuCBuamcK/6P+LKATaQincyEiIiIiIiIiInoHQohCb1PYgjgL6ERv523uz+xYRCciIiIiIiIiInoLurq6AIDU1FQNR0JE6ijvT+X9+jb4FRYREREREREREdFb0NbWhoWFBZ49ewYAMDIygkwm03BUZZcQAnK5HDo6OrwOBCEEUlNT8ezZM1hYWEBbW/ut+2IRnYiIiIiIiIiI6C3Z2toCgFRIJ80RQkChUEBLS4tFdJJYWFhI9+nbYhGdiIiIiIiIiIjoLclkMlSsWBE2NjbIyMjQdDhlmkKhQFxcHKysrKClxVms6c0ULu/yBLoSi+hERERERERERETvSFtbu0iKdfT2FAoFdHV1YWBgwCI6FSlmExERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITEREREREREREREanBIjoRERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITEREREREREREREanBIjoRERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITlSHydHmxti9tcVDR4nUlog9VWR7fyvKxl0W83h+mvK5TbusK276olJY4iYoTx2Eqbsyxt8ciOlEZcS30GtZ1WIekR0kFap/0KAnrOqzDtdBrGo9jfef1iD0eW6RxUNF6X/KLiKioleXxrSwfe1nE6/1hyuu65rYur+tanNe8tMRJVJw4DlNxY469GxbRy6hMRaamQ6ASJE+X4+LSi4iPjceWvltyDJhyheo3i0mPkrCl7xbEx8bj4tKLhf+mUpF7+7eO4348ovZG8RvQ91RJ5xdRYagdj9Qsp5L1vl+Hsjy+ydPluLD0wntx7O97nnwIykKul8U8yuu65naPZ72uF5ZeULmuxXqPl5I4iYpTWRiH1clrfC6LY7dSUR97Wc6xosIiehl0/dl1fHXkK1x/dl3ToVAJ0THQgc82H1jYWyD+vuqAee3pNbQPaY9rT998s5i1cG1hbwGfbT7QMdAp8L6y91ckcVS1QOtprQsVB5WckswvosJQNx7lNU5RySkN16Esj2+3Em5hU99N0LXT1eixl4Y8+RB86LleVvMor+ua/R7f5LUJm7w2If5+PHTtdLGp7ybcSrgFoPiveWmJk6g4fejjsDp5jc9ldewGiufYy2qOFSWNFtFPnjwJLy8v2NnZQSaTYdeuXXm237FjBzp37gxra2uYmZmhRYsWOHjwYMkE+wFZfmE5HiQ+wPILyzUdCpUgUztT+GzPOWAuvbAUN5/fxNILS3MOlNt9YGpnWqj9ZO2vqOLw3uoNQ0vDojgNVExKKr+ICkPdeJTfOEUlo7Rch7I6vi29sBTh8nDcHndbo8deWvLkQ/Ah53pZzqO8rqvyHjetaIqn15/i6fWnMK1oitvjbiNcHl6i17y0xElUnD7kcVidvMbnsjx2F9exl8UcK0oaLaKnpKSgfv36WLq0YElx8uRJdO7cGfv27cPly5fRvn17eHl5ITw8vJgj/XCEPw7HoZhD0NPSw6GYQ4h4EqHpkKgEZR8wg3sE41T4KRjoGOBU+CkE9wh+p4Ey/HE4wu6FwUDHAGH3wtTmV6HjqMgBuzQo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ERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITEREREREREREREanBIjoRERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGpwSI6EREREREREREREZEaLKITEREREREREREREanBIjoRERERERERERERkRosohMRERERERERERERqcEiOhERERERERERERGRGiyiExERERERERERERGp8dZF9NevXyMyMhJyubwo4yEiIiIiIiIiIiIiem8UuoiempqK4cOHw8jICHXq1MGDBw8AAJ999hl++umnIg+QiIiIiIiIiIiIiEhTCl1EnzZtGq5evYrjx4/DwMBAWt6pUyds3ry5SIMjIiIiIiIiIiIiItIkncJusGvXLmzevBnNmzeHTCaTltepUwfR0dFFGhwRERERERERERERkSYV+kn058+fw8bGJsfylJQUlaI6EREREREREREREVFpV+gieuPGjbF3717pZ2Xh/Ndff0WLFi2KLjIiIiIiIiIiIiIiIg0r9HQus2bNQteuXXHr1i3I5XIsWrQIt27dwtmzZ3HixIniiJGIiIiIiIiIiIiISCMK/SR669atERERAblcDldXV4SFhcHGxgbnzp2Dm5tbccRIRERERERERERERKQRhX4SHQCcnJywevXqoo6FiIiIiIiIiIiIiOi98lZF9MzMTOzcuRO3b98GANSuXRs9e/aEjs5bdUdERERERERERERE9F4qdNX75s2b6NGjB548eYIaNWoAAGbPng1ra2v8+eefqFu3bpEHSURERERERERERESkCYWeE33EiBGoU6cOHj58iCtXruDKlSv4559/UK9ePYwaNao4YiQiIiIiIiIiIiIi0ohCP4keERGBS5cuoVy5ctKycuXKYebMmWjSpEmRBkdEREREREREREREpEmFfhK9evXqePr0aY7lz549g7Ozc5EERURERERERERERET0Pih0ET0oKAgBAQHYtm0bHj58iIcPH2Lbtm2YMGECZs+ejcTE/2PvzuOlquv/gb/msoMCoqymgkuK5W4Rai6JIhqupaQpmkua5oKZS1/cUjHcMYufuZuW1des1CwEjTLcUNTM3JVSARURAVnv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m/LWW2/VJNSTpE+fPrnnnntyyimn5KqrrspnPvOZXHfddRk4cOBKHxMAAAAAAFbWSiXRr7jiiqy++uo1/15eEr0udt555xSLxZLrb7rppmVu8+STT5bl+AAAAAAAsDwrlUQfOnRozb8PP/zw+ooFAAAAAACalDrXRG/RokWmTZu21PJ33303LVq0KEtQAAAAAADQFNQ5iV6q/Mq8efPSunXrTxwQAAAAAAA0FStVziVJRo0alSQpFAq57rrrstpqq9WsW7RoUcaPH59NNtmk/BECAAAAAEAjWekk+hVXXJFk8Uz00aNH1yrd0rp16/Tu3TujR48uf4QAAAAAANBIVjqJ/uqrryZJdtlll9x5551ZY4016i0oAAAAAABoClY6ib7EAw88UB9xAAAAAABAk1PnHxY94IAD8qMf/Wip5SNHjszXv/71sgQFAAAAAABNQZ2T6OPHj8+ee+651PJBgwZl/PjxZQkKAAAAAACagjon0WfNmpXWrVsvtbxVq1aZOXNmWYICAAAAAICmoM5J9M022yx33HHHUst/+ctfZtNNNy1LUAAAAAAA0BTU+YdFhw8fnv333z8vv/xyvvKVryRJxo4dm1/84hf59a9/XfYAAQAAAACgsdQ5iT548ODcddddueiii/Kb3/wm7dq1y+abb577778/O+20U33ECAAAAAAAjaLOSfQk2WuvvbLXXnuVOxYAAAAAAGhS6lwTPUlmzJiR6667LmeddVamT5+eJHniiSfyxhtvlDU4AAAAAABoTHWeif70009nwIAB6dSpU1577bUcddRR6dKlS+68885Mnjw5t9xyS33ECQAAAAAADa7OM9GHDRuWww8/PC+++GLatm1bs3zPPffM+PHjyxocAAAAAAA0pjon0R977LF8+9vfXmr52muvnSlTppQlKAAAAAAAaArqnERv06ZNZs6cudTyF154IV27di1LUAAAAAAA0BTUOYm+99575/zzz8+CBQuSJIVCIZMnT87pp5+eAw44oOwBAgAAAABAY6lzEv2yyy7LrFmz0q1bt3z44YfZaaedsuGGG2b11VfPhRdeWB8xAgAAAABAo2hZ1w06deqUMWPG5KGHHspTTz2VWbNmZeutt86AAQPqIz4AAAAAAGg0dU6i33LLLTnooIOy/fbbZ/vtt69ZPn/+/Pzyl7/MYYcdVtYAAQAAAACgsdS5nMsRRxyR999/f6nlH3zwQY444oiyBAUAAAAAAE1BnZPoxWIxhUJhqeX/+c9/0qlTp7IEBQAAAAAATcFKl3PZaqutUigUUigUsuuuu6Zly/9uumjRorz66qvZY4896iVIAAAAAABoDCudRN93332TJJMmTcrAgQOz2mqr1axr3bp1evfunQMOOKDsAQIAAAAAQGNZ6ST6OeeckyTp3bt3DjrooLRt27beggIAAAAAgKagzjXRhw4dmrlz5+a6667LmWeemenTpydJnnjiibzxxhtlDxAAAAAAABrLSs9EX+Lpp5/OgAED0qlTp7z22ms5+uij06VLl9x5552ZPHlybrnllvqIEwAAAAAAGlydZ6KfcsopOfzww/Piiy/WKumy5557Zvz48WUNDgAAAAAAGlOdZ6I//vjjufbaa5davvbaa2fKlCllCQoAAAAAAJqCOs9Eb9OmTWbOnLnU8hdeeCFdu3YtS1AAAAAAANAU1DmJvvfee+f888/PggULkiSFQiGTJ0/O6aefngMOOKDsAQIAAAAAQGOpcxL9sssuy6xZs9KtW7d8+OGH2WmnnbLhhhtm9dVXz4UXXlgfMQIAAAAAQKOoc030Tp06ZcyYMfnb3/6Wp59+OrNmzcrWW2+dAQMG1Ed8AAAAAADQaOqcRF9ihx12yA477FDOWAAAAAAAoEmpUxK9uro6N910U+6888689tprKRQK6dOnT772ta/l0EMPTaFQqK84AQAAAACgwa10TfRisZi99947Rx11VN54441sttlm+dznPpfXX389hx9+ePbbb7/6jBMAAAAAABrcSs9Ev+mmmzJ+/PiMHTs2u+yyS61148aNy7777ptbbrklhx12WNmDBAAAAACAxrDSM9F/8Ytf5KyzzloqgZ4kX/nKV3LGGWfktttuK2twAAAAAADQmFY6if70009njz32KLl+0KBBeeqpp8oSFAAAAAAANAUrnUSfPn16unfvXnJ99+7d895775UlKAAAAAAAaApWOom+aNGitGxZuoR6ixYtsnDhwrIEBQAAAAAATcFK/7BosVjM4YcfnjZt2ixz/bx588oWFAAAAAAANAUrnUQfOnToCtscdthhnygYAAAAAABoSlY6iX7jjTfWZxwAAAAAANDkrHRNdAAAAAAAaG4k0QEAAAAAoARJdAAAAAAAKEESHQAAAAAASpBEBwAA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Y7JgwYLsvvvumT17dq12Rx99dN56662ax8iRIxspYljsc5/7XK0++be//a1m3SmnnJI//OEP+fWvf52//OUvefPNN7P//vs3YrQ0d4899lit/jpmzJgkyde//vWaNsZZGtvs2bOzxRZb5Jprrlnm+pEjR2bUqFEZPXp0HnnkkXTo0CEDBw7M3Llza9occsghefbZZzNmzJjcfffdGT9+fI455piGOgWameX12Tlz5uSJJ57I8OHD88QTT+TOO+/M888/n7333nuptueff36t8fe73/1uQ4RPM7SicTZJ9thjj1r98Re/+EWt9cZZGtqK+u1H++tbb72VG264IYVCIQcccECtdsZaVlXLxg6AhnP55Zfn6KOPzhFHHJEkGT16dO65557ccMMNOeOMMxo5Opq7++67r9bzm266Kd26dcvEiROz44471ixv3759evTo0dDhQUktW7ZcZp98//33c/311+f222/PV77ylSTJjTfemL59++bhhx/Ol770pYYOFdK1a9dazy+++OJssMEG2WmnnWqWGWdpbIMGDcqgQYOWua5YLObKK6/M//zP/2SfffZJktxyyy3p3r177rrrrgwZMiTPPfdc7rvvvjz22GPZdtttkyRXX3119txzz1x66aXp1atXg50LzcPy+mynTp1qvrBc4sc//nG++MUvZvLkyVl33XVrlq+++urGXxrE8vrsEm3atCnZH42zNIYV9duP99ff/e532WWXXbL++uvXWm6sZVWZid5MzJ8/PxMnTsyAAQNqllVVVWXAgAGZMGFCI0YGy/b+++8nSbp06VJr+W233Za11lorn//853PmmWdmzpw5jREe1HjxxRfTq1evrL/++jnkkEMyefLkJMnEiROzYMGCWuPuJptsknXXXde4S5Mwf/78/PznP8+3vvWtFAqFmuXGWZqyV199NVOmTKk1tnbq1Cn9+vWrGVsnTJiQzp071yR2kmTAgAGpqqrKI4880uAxw8e9//77KRQK6dy5c63lF198cdZcc81stdVWueSSS7Jw4cLGCRCSPPjgg+nWrVs23njjHHfccXn33Xdr1hlnaeqmTp2ae+65J0ceeeRS64y1rCoz0ZuJd955J4sWLUr37t1rLe/evXv+9a9/NVJUsGzV1dU5+eSTs/322+fzn/98zfKDDz446623Xnr16pWnn346p59+ep5//vnceeedjRgtzVm/fv1y0003ZeONN85bb72V8847L1/+8pfzj3/8I1OmTEnr1q2X+h/k7t27Z8qUKY0TMHzEXXfdlRkzZuTwww+vWWacpalbMn4u6552ybopU6akW7dutda3bNkyXbp0Mf7S6ObOnZvTTz893/jGN9KxY8ea5SeeeGK23nrrdOnSJX//+99z5pln5q233srll1/eiNHSXO2xxx7Zf//906dPn7z88ss566yzMmjQoEyYMCEtWrQwztLk3XzzzVl99dWXKqVprOWTkEQHmpzjjz8+//jHP2rVlk5Sq8beZpttlp49e2bXXXfNyy+/nA022KChw4Raf064+eabp1+/fllvvfXyq1/9Ku3atWvEyGDFrr/++gwaNKjWn1wbZwHqz4IFC3LggQemWCzmpz/9aa11w4YNq/n35ptvntatW+fb3/52RowYkTZt2jR0qDRzQ4YMqfn3Zpttls033zwbbLBBHnzwwey6666NGBmsnBtuuCGHHHJI2rZtW2u5sZZPQjmXZmKttdZKixYtMnXq1FrLp06dqhYUTcoJJ5yQu+++Ow888EA+85nPLLdtv379kiQvvfRSQ4QGK9S5c+d89rOfzUsvvZQePXpk/vz5mTFjRq02xl2agtdffz33339/jjrqqOW2M87S1CwZP5d3T9ujR49Mmzat1vqFCxdm+vTpxl8azZIE+uuvv54xY8bUmoW+LP369cvChQvz2muvNUyAsBzrr79+1lprrZr7AeMsTdlf//rXPP/88yu8z02MtdSNJHoz0bp162yzzTYZO3ZszbLq6uqMHTs2/fv3b8TIYLFisZgTTjghv/3tbzNu3Lj06dNnhdtMmjQpSdKzZ896jg5WzqxZs/Lyyy+nZ8+e2WabbdKqVata4+7zzz+fyZMnG3dpdDfeeGO6deuWvfbaa7ntjLM0NX369EmPHj1qja0zZ87MI488UjO29u/fPzNmzMjEiRNr2owbNy7V1dU1XwxBQ1qSQH/xxRdz//33Z80111zhNpMmTUpVVdVSJTOgMfznP//Ju+++W3M/YJylKbv++uuzzTbbZIsttlhhW2MtdaGcSzMybNiwDB06NNtuu22++MUv5sorr8zs2bNzxBFHNHZokOOPPz633357fve732X11VevqaXXqVOntGvXLi+//HJuv/327LnnnllzzTXz9NNP55RTTsmOO+6YzTffvJGjp7n63ve+l8GDB2e99dbLm2++mXPOOSctWrTIN77xjXTq1ClHHnlkhg0bli5duqRjx4757ne/m/79++dLX/pSY4dOM1ZdXZ0bb7wxQ4cOTcuW/70VNM7SVMyaNavWXz+8+uqrmTRpUrp06ZJ11103J598ci644IJstNFG6dOnT4YPH55evXpl3333TZL07ds3e+yxR44++uiMHj06CxYsyAknnJAhQ4bUKl8E5bK8PtuzZ8987WtfyxNPPJG77747ixYtqrnP7dKlS1q3bp0JEybkkUceyS677JLVV189EyZMyCmnnJJvfvObWWONNRrrtPgUW16f7dKlS84777wccMAB6dGjR15++eV8//vfz4YbbpiBAwcmMc7SOFZ0f5As/mL917/+dS677LKltjfW8okVaVauvvrq4rrrrlts3bp18Ytf/GLx4YcfbuyQoFgsFotJlvm48cYbi8VisTh58uTijjvuWOzSpUuxTZs2xQ033LB42mmnFd9///3GDZxm7aCDDir27Nmz2Lp16+Laa69dPOigg4ovvfRSzfoPP/yw+J3vfKe4xhprFNu3b1/cb7/9im+99VYjRgzF4p/+9KdikuLzzz9fa7lxlqbigQceWOY9wdChQ4vFYrFYXV1dHD58eLF79+7FNm3aFHfdddel+vO7775b/MY3vlFcbbXVih07diweccQRxQ8++KARzobmYHl99tVXXy15n/vAAw8Ui8ViceLEicV+/foVO3XqVGzbtm2xb9++xYsuuqg4d+7cxj0xPrWW12fnzJlT3H333Ytdu3YttmrVqrjeeusVjz766OKUKVNq7cM4S0Nb0f1BsVgs/r//9/+K7dq1K86YMWOp7Y21fFKFYrFYrPdMPQAAAAAAVCA10QEAAAAAoARJdAAAAAAAKEESHQAAAAAASpBEBwAAAACAEiTRAQAAAACgBEl0AAAAAAAoQRIdAAAAAABKkEQHAAAAAIASJNEBAOBTrFAo5K677mrsMHLuuedmyy23bOwwAACgziTRAQDgE3j77bdz3HHHZd11102bNm3So0ePDBw4MA899FBjh1YWr732WgqFQiZNmtTYoQAAQKNo2dgBAABAJTvggAMyf/783HzzzVl//fUzderUjB07Nu+++25jhwYAAJSBmegAALCKZsyYkb/+9a/50Y9+lF122SXrrbdevvjFL+bMM8/M3nvvXdPu8ssvz2abbZYOHTpknXXWyXe+853MmjWrZv1NN92Uzp075+67787GG2+c9u3b52tf+1rmzJmTm2++Ob17984aa6yRE088MYsWLarZrnfv3vnhD3+Yb3zjG+nQoUPWXnvtXHPNNcuN+d///ncOPPDAdO7cOV26dMk+++yT1157baXP+cEHH0yhUMjYsWOz7bbbpn379tluu+3y/PPP12p38cUXp3v37ll99dVz5JFHZu7cuUvt67rrrkvfvn3Ttm3bbLLJJvnJT35Ss+5b3/pWNt9888ybNy9JMn/+/Gy11VY57LDDVjpWAAAoB0l0AABYRauttlpWW2213HXXXTXJ3mWpqqrKqFGj8uyzz+bmm2/OuHHj8v3vf79Wmzlz5mTUqFH55S9/mfvuuy8PPvhg9ttvv9x777259957c+utt+b//b//l9/85je1trvkkkuyxRZb5Mknn8wZZ5yRk046KWPGjFlmHAsWLMjAgQOz+uqr569//WseeuihrLbaatljjz0yf/78Op37D37wg1x22WV5/PHH07Jly3zrW9+qWferX/0q5557bi666KI8/vjj6dmzZ60EeZLcdtttOfvss3PhhRfmueeey0UXXZThw4fn5ptvTpKMGjUqs2fPzhlnnFFzvBkzZuTHP/5xneIEAIBPqlAsFouNHQQAAFSq//3f/83RRx+dDz/8MFtvvXV22mmnDBkyJJtvvnnJbX7zm9/k2GOPzTvvvJNk8Uz0I444Ii+99FI22GCDJMmxxx6bW2+9NVOnTs1qq62WJNljjz3Su3fvjB49Osnimeh9+/bNH//4x5p9DxkyJDNnzsy9996bZPEPi/72t7/Nvvvum5///Oe54IIL8txzz6VQKCRZPMO7c+fOueuuu7L77rsvFetrr72WPn365Mknn8yWW26ZBx98MLvsskvuv//+7LrrrkmSe++9N3vttVc+/PDDtG3bNtttt1222mqrWrPiv/SlL2Xu3Lk1tdU33HDDmln0S1xwwQW599578/e//z1JMmHChOy0004544wzMmLEiDzwwAPZYYcd6nB1AADgkzMTHQAAPoEDDjggb775Zn7/+99njz32yIMPPpitt946N910U02bJQnntddeO6uvvnoOPfTQvPvuu5kzZ05Nm/bt29ck0JOke/fu6d27d00CfcmyadOm1Tp+//79l3r+3HPPLTPWp556Ki+99FJWX331mln0Xbp0ydy5c/Pyyy/X6bw/+iVBz549k6Qmtueeey79+vUrGefs2bPz8ssv58gjj6yJY7XVVssFF1xQK47+/fvne9/7Xn74wx/m1FNPlUAHAKBR+GFRAAD4hNq2bZvddtstu+22W4YPH56jjjoq55xzTg4//PC89tpr+epXv5rjjjsuF154Ybp06ZK//e1vOfLIIzN//vy0b98+SdKqVata+ywUCstcVl1dvcpxzpo1K9tss01uu+22pdZ17dq1Tvv6aGxLZrWvbGxL6sH/7Gc/WyrZ3qJFi5p/V1dX56GHHkqLFi3y0ksv1Sk+AAAoFzPRAQCgzDbddNPMnj07STJx4sRUV1fnsssuy5e+9KV89rOfzZtvvlm2Yz388MNLPe/bt+8y22699dZ58cUX061bt2y44Ya1Hp06dSpbTH379s0jjzxSMs7u3bunV69eeeWVV5aKo0+fPjXtLrnkkvzrX//KX/7yl9x333258cYbyxYjAACsLEl0AABYRe+++26+8pWv5Oc//3mefvrpvPrqq/n1r3+dkSNHZp999kmyuPb3ggULcvXVV+eVV17JrbfeWlPTvBweeuihjBw5Mi+88EKuueaa/PrXv85JJ520zLaHHHJI1lprreyzzz7561//mldffTUPPvhgTjzxxPznP/8pW0wnnXRSbrjhhtx444154YUXcs455+TZZ5+t1ea8887LiBEjMmrUqLzwwgt55plncuONN+byyy9Pkjz55JM5++yzc91112X77bfP5ZdfnpNOOimvvPJK2eIEAICVIYkOAACraLXVVku/fv1yxRVXZMcdd8znP//5DB8+PEcffXR+/OMfJ0m22GKLXH755fnRj36Uz3/+87ntttsyYsSIssVw6qmn5vHHH89WW22VCy64IJdffnkGDhy4zLbt27fP+PHjs+6662b//fdP3759c+SRR2bu3Lnp2LFj2WI66KCDMnz48Hz/+9/PNttsk9dffz3HHXdcrTZHHXVUrrvuutx4443ZbLPNstNOO+Wmm25Knz59Mnfu3Hzzm9/M4YcfnsGDBydJjjnmmOyyyy459NBDs2jRorLFCgAAK1IoFovFxg4CAACou969e+fkk0/OySef3NihAADAp5aZ6AAAAAAAUIIkOgAAAAAAlKCcCwAAAAAAlGAmOgAAAAAAlCCJDgAAAAAAJUiiAwAAAABACZLoAAAAAABQgiQ6AAAAAACUIIkOAAAAAAAlSKIDAAAAAEAJkugAAAAAAFCCJDoAAAAAAJQgiQ4AAAAAACVIogMAAAAAQAmS6AAAAAAAUIIkOgAAAAAAlCCJDgAAAAAAJUiiAwCsghdffDG77757OnXqlEKhkLvuuqus+3/ttddSKBRy0003lXW/lWznnXfOzjvv3NhhAAAAzYwkOgBQsV5++eV8+9vfzvrrr5+2bdumY8eO2X777XPVVVflww8/rNdjDx06NM8880wuvPDC3Hrrrdl2223r9XgN6fDDD0+hUEjHjh2X+Tq++OKLKRQKKRQKufTSS+u8/zfffDPnnntuJk2aVIZoAQAA6lfLxg4AAGBV3HPPPfn617+eNm3a5LDDDsvnP//5zJ8/P3/7299y2mmn5dlnn821115bL8f+8MMPM2HChPzgBz/ICSecUC/HWG+99fLhhx+mVatW9bL/FWnZsmXmzJmTP/zhDznwwANrrbvtttvStm3bzJ07d5X2/eabb+a8885L7969s+WWW670dn/+859X6XgAAACfhCQ6AFBxXn311QwZMiTrrbdexo0bl549e9asO/744/PSSy/lnnvuqbfjv/3220mSzp0719sxCoVC2rZtW2/7X5E2bdpk++23zy9+8Yulkui333579tprr/zv//5vg8QyZ86ctG/fPq1bt26Q4wEAAHyUci4AQMUZOXJkZs2aleuvv75WAn2JDTfcMCeddFLN84ULF+aHP/xhNthgg7Rp0ya9e/fOWWedlXnz5tXarnfv3vnqV7+av/3tb/niF7+Ytm3bZv31188tt9xS0+bcc8/NeuutlyQ57bTTUigU0rt37ySLy6As+fdHnXvuuSkUCrWWjRkzJjvssEM6d+6c1VZbLRtvvHHOOuusmvWlaqKPGzcuX/7yl9OhQ4d07tw5++yzT5577rllHu+ll17K4Ycfns6dO6dTp0454ogjMmfOnNIv7MccfPDB+eMf/5gZM2bULHvsscfy4osv5uCDD16q/fTp0/O9730vm222WVZbbbV07NgxgwYNylNPPVXT5sEHH8wXvvCFJMkRRxxRUxZmyXnuvPPO+fznP5+JEydmxx13TPv27Wtel4/XRB86dGjatm271PkPHDgwa6yxRt58882VPlcAAIBSJNEBgIrzhz/8Ieuvv3622267lWp/1FFH5eyzz87WW2+dK664IjvttFNGjBiRIUOGLNX2pZdeyte+9rXstttuueyyy7LGGmvk8MMPz7PPPpsk2X///XPFFVckSb7xjW/k1ltvzZVXXlmn+J999tl89atfzbx583L++efnsssuy957752HHnpoudvdf//9GThwYKZNm5Zzzz03w4YNy9///vdsv/32ee2115Zqf+CBB+aDDz7IiBEjcuCBB+amm27Keeedt9Jx7r///ikUCrnzzjtrlt1+++3ZZJNNsvXWWy/V/pVXXsldd92Vr371q7n88stz2mmn5ZlnnslOO+1Uk9Du27dvzj///CTJMccck1tvvTW33nprdtxxx5r9vPvuuxk0aFC23HLLXHnlldlll12WGd9VV12Vrl27ZujQoVm0aFGS5P/9v/+XP//5z7n66qvTq1evlT5XAACAUpRzAQAqysyZM/PGG29kn332Wan2Tz31VG6++eYcddRR+dnPfpYk+c53vpNu3brl0ksvzQMPPFArSfv8889n/Pjx+fKXv5xkcSJ6nXXWyY033phLL700m2++eTp27JhTTjklW2+9db75zW/W+RzGjBmT+fPn549//GPWWmutld7utNNOS5cuXTJhwoR06dIlSbLvvvtmq622yjnnnJObb765Vvutttoq119/fc3zd999N9dff31+9KMfrdTxVl999Xz1q1/N7bffnm9961uprq7OL3/5yxx33HHLbL/ZZpvlhRdeSFXVf+dpHHroodlkk01y/fXXZ/jw4enevXsGDRqUs88+O/3791/m6zdlypSMHj063/72t5cbX+fOnXP99ddn4MCBufjii3PwwQfne9/7Xvbdd99Vui4AAADLYiY6AFBRZs6cmWRxgndl3HvvvUmSYcOG1Vp+6qmnJslStdM33XTTmgR6knTt2jUbb7xxXnnllVWO+eOW1FL/3e9+l+rq6pXa5q233sqkSZNy+OGH1yTQk2TzzTfPbrvtVnOeH3XsscfWev7lL3857777bs1ruDIOPvjgPPjgg5kyZUrGjRuXKVOmLLOUS7K4jvqSBPqiRYvy7rvv1pSqeeKJJ1b6mG3atMkRRxyxUm133333fPvb387555+f/fffP23bts3/+3//b6WPBQAAsCKS6ABARenYsWOS5IMPPlip9q+//nqqqqqy4YYb1lreo0ePdO7cOa+//nqt5euuu+5S+1hjjTXy3nvvrWLESzvooIOy/fbb56ijjkr37t0zZMiQ/OpXv1puQn1JnBtvvPFS6/r27Zt33nkns2fPrrX84+eyxhprJEmdzmXPPffM6quvnjvuuCO33XZbvvCFLyz1Wi5RXV2dK664IhtttFHatGmTtdZaK127ds3TTz+d999/f6WPufbaa9fpR0QvvfTSdOnSJZMmTcqoUaPSrVu3ld4WAABgRSTRAYCK0rFjx/Tq1Sv/+Mc/6rTdx3/Ys5QWLVosc3mxWFzlYyyp171Eu3btMn78+Nx///059NBD8/TTT+eggw7KbrvttlTbT+KTnMsSbdq0yf7775+bb745v/3tb0vOQk+Siy66KMOGDcuOO+6Yn//85/nTn/6UMWPG5HOf+9xKz7hPFr8+dfHkk09m2rRpSZJnnnmmTtsCAACsiCQ6AFBxvvrVr+bll1/OhAkTVth2vfXWS3V1dV588cVay6dOnZoZM2ZkvfXWK1tca6yxRmbMmLHU8o/Pdk+Sqqqq7Lrrrrn88svzz3/+MxdeeGHGjRuXBx54YJn7XhLn888/v9S6f/3rX1lrrbXSoUOHT3YCJRx88MF58skn88EHHyzzx1iX+M1vfpNddtkl119/fYYMGZLdd989AwYMWOo1WdkvNFbG7Nmzc8QRR2TTTTfNMccck5EjR+axxx4r2/4BAAAk0QGAivP9738/HTp0yFFHHZWpU6cutf7ll1/OVVddlWRxOZIkufLKK2u1ufzyy5Mke+21V9ni2mCDDfL+++/n6aefrln21ltv5be//W2tdtOnT19q2y233DJJMm/evGXuu2fPntlyyy1z880310pK/+Mf/8if//znmvOsD7vsskt++MMf5sc//nF69OhRsl2LFi2WmuX+61//Om+88UatZUuS/cv6wqGuTj/99EyePDk333xzLr/88vTu3TtDhw4t+ToCAADUVcvGDgAAoK422GCD3H777TnooIPSt2/fHHbYYfn85z+f+fPn5+9//3t+/etf5/DDD0+SbLHFFhk6dGiuvfbazJgxIzvttFMeffTR3Hzzzdl3332zyy67lC2uIUOG5PTTT89+++2XE088MXPmzMlPf/rTfPazn631w5rnn39+xo8fn7322ivrrbdepk2blp/85Cf5zGc+kx122KHk/i+55JIMGjQo/fv3z5FHHpkPP/wwV199dTp16pRzzz23bOfxcVVVVfmf//mfFbb76le/mvPPPz9HHHFEtttuuzzzzDO57bbbsv7669dqt8EGG6Rz584ZPXp0Vl999XTo0CH9+vVLnz596hTXuHHj8pOf/CTnnHNOtt566yTJjTfemJ133jnDhw/PyJEj67Q/AACAZTETHQCoSHvvvXeefvrpfO1rX8vvfve7HH/88TnjjDPy2muv5bLLLsuoUaNq2l533XU577zz8thjj+Xkk0/OuHHjcuaZZ+aXv/xlWWNac80189vf/jbt27fP97///dx8880ZMWJEBg8evFTs6667bm644YYcf/zxueaaa7Ljjjtm3Lhx6dSpU8n9DxgwIPfdd1/WXHPNnH322bn00kvzpS99KQ899FCdE9D14ayzzsqpp56aP/3pTznppJPyxBNP5J577sk666xTq12rVq1y8803p0WLFjn22GPzjW98I3/5y1/qdKwPPvgg3/rWt7LVVlvlBz/4Qc3yL3/5yznppJNy2WWX5eGHHy7LeQEAAM1boViXX5YCAAAAAIBmxEx0AAAAAAAoQRIdAAAAAABKkEQHAAAAAIASJNEBAAAAAKAESXQAAAAAAChBEh0AAAAAAEpo2dgBNIZ2W53Q2CEAAJTVG3+7qrFDAAAomy4dWjR2CE1WufNaHz7547LuDz6NzEQHAAAAAIASmuVMdAAAAACoSAVzYqGhSaIDAAAAQKUoFBo7Amh2fHUFAAAAAAAlmIkOAAAAAJVCORdocN51AAAAAABQgpnoAAAAAFAp1ESHBieJDgAAAACVQjkXaHDedQAAAAAAUIKZ6AAAAABQKZRzgQYniQ4AAAAAlUI5F2hw3nUAAAAAAFCCmegAAAAAUCmUc4EGJ4kOAAAAAJVCORdocN51AAAAAABQgpnoAAAAAFAplHOBBieJDgAAAACVQjkXaHDedQAAAAAAUIKZ6AAAAABQKZRzgQZnJjoAAAAAAJRgJjoAAAAAVAo10aHBSaIDAAAAQKWQRIcG510HAAAAAAAlmIkOAAAAAJWiyg+LQkOTRAcAAACASqGcCzQ47zoAAAAAACjBTHQAAAAAqBQF5VygoUmiAwAAAEClUM4FGpx3HQAAAAAAlGAmOgAAAABUCuVcoMGZiQ4AAAAAACWYiQ4AAAAAlUJNdGhwkugAAAAAUCmUc4EG56srAAAAAAAowUx0AAAAAKgUyrlAg5NEBwAAAIBKoZwLNDhfXQEAAAAAQAlmogMAAABApVDOBRqcJDoAAAAAVArlXKDB+eoKAAAAAABKMBMdAAAAACqFci7Q4LzrAAAAAACgBDPRAQAAAKBSmIkODU4SHQAAAAAqhR8WhQbnqysAAAAAACjBTHQAAAAAqBTKuUCDk0QHAAAAgEqhnAs0OF9dAQAAAABACZLoAAAAAFApClXlfdTR+PHjM3jw4PTq1SuFQiF33XVXybbHHntsCoVCrrzyylrLp0+fnkMOOSQdO3ZM586dc+SRR2bWrFm12jz99NP58pe/nLZt22adddbJyJEj6xwrlIskOgAAAABUikKhvI86mj17drbYYotcc801y23329/+Ng8//HB69eq11LpDDjkkzz77bMaMGZO7774748ePzzHHHFOzfubMmdl9992z3nrrZeLEibnkkkty7rnn5tprr61zvFAOaqIDAAAAACtl0KBBGTRo0HLbvPHGG/nud7+bP/3pT9lrr71qrXvuuedy33335bHHHsu2226bJLn66quz55575tJLL02vXr1y2223Zf78+bnhhhvSunXrfO5zn8ukSZNy+eWX10q2Q0MxEx0AAAAAKkShUCjrY968eZk5c2atx7x581Y5vurq6hx66KE57bTT8rnPfW6p9RMmTEjnzp1rEuhJMmDAgFRVVeWRRx6pabPjjjumdevWNW0GDhyY559/Pu+9994qxwarShIdAAAAAJqpESNGpFOnTrUeI0aMWOX9/ehHP0rLli1z4oknLnP9lClT0q1bt1rLWrZsmS5dumTKlCk1bbp3716rzZLnS9pAQ1LOBQAAAAAqRGEV6pgvz5lnnplhw4bVWtamTZtV2tfEiRNz1VVX5Yknnih7nNCYzEQHAAAAgEpRKO+jTZs26dixY63HqibR//rXv2batGlZd91107Jly7Rs2TKvv/56Tj311PTu3TtJ0qNHj0ybNq3WdgsXLsz06dPTo0ePmjZTp06t1WbJ8yVtoCFJogMAAAAAn9ihhx6ap59+OpMmTap59OrVK6eddlr+9Kc/JUn69++fGTNmZOLEiTXbjRs3LtXV1enXr19Nm/Hjx2fBggU1bcaMGZONN944a6yxRsOeFEQ5FwAAAACoGI1dJmXWrFl56aWXap6/+uqrmTRpUrp06ZJ11103a665Zq32rVq1So8ePbLxxhsnSfr27Zs99tgjRx99dEaPHp0FCxbkhBNOyJAhQ9KrV68kycEHH5zzzjsvRx55ZE4//fT84x//yFVXXZUrrrii4U4UPkISHQAAAAAqRGMn0R9//PHssssuNc+X1FMfOnRobrrpppXax2233ZYTTjghu+66a6qqqnLAAQdk1KhRNes7deqUP//5zzn++OOzzTbbZK211srZZ5+dY445pqznAiurUCwWi40dRENrt9UJjR0CAEBZvfG3qxo7BACAsunSoUVjh9BkrX7QzWXd3wd3DC3r/uDTyEx0AAAAAKgQjT0THZojSXQAAAAAqBCS6NDwqho7AAAAAAAAaKrMRAcAAACASmEiOjQ4M9EBAAAAAKAEM9EBAAAAoEKoiQ4NTxIdAAAAACqEJDo0POVcAAAAAACgBDPRAQAAAKBCmIkODU8SHQAAAAAqhCQ6NDzlXAAAAAAAoAQz0QEAAACgUpiIDg1OEh0AAAAAKoRyLtDwlHMBAAAAAIASzEQHAAAAgAphJjo0PDPRAQAAAACgBDPRAQAAAKBCmIkODU8SHQAAAAAqhRw6NDjlXAAAAAAAoAQz0QEAAACgQijnAg1PEh0AAAAAKoQkOjQ85VwAAAAAAKAEM9EBAAAAoEKYiQ4NTxIdAAAAACqEJDo0POVcAAAAAACgBDPRAQAAAKBSmIgODU4SHQAAAAAqhHIu0PCUcwEAAAAAgBLMRAcAAACACmEmOjQ8M9EBAAAAAKAEM9EBAAAAoEKYiQ4NTxIdAAAAACqFHDo0OOVcAAAAAACgBDPRAQAAAKBCKOcCDU8SHQAAAAAqhCQ6NDzlXAAAAAAAoAQz0QGWY/utN8gphw3I1puum55dO+XAU67NHx58umb9ted9M4fu/aVa2/z5oX9mnxN+UvN8y00+kwtO2jfbfG7dLFpUzF1jJ+X0y/43sz+cX9Pmwyd/vNSxDzvjxvz6TxPr4awAAP7ryYmP57Zbbsjzzz2bd955OxdfNio77TKgZv2cObPzk1FXZPyDY/P++zPSq9fa+fo3vpn9vzakps13jh6aJyc+Vmu/+x5wYE7/wbkNdRoAzYaZ6NDwJNEBlqNDuzZ55oU3csvvJuSOy49ZZps/PfRsvn3Oz2uez5u/sObfPbt2yj2jv5vf/PmJnHLxr9KxQ9tcctoB+dn5h+bg066vtZ+jz741Y/7+z5rnMz74sMxnAwCwtLlz52Sjz26cr+6zf8783olLrR912cg8/tjDOfeCH6Vnr7XzyISHcunFP0zXrt3y5Z2+UtNun/2+nqOPO6Hmedu27RokfoDmRhIdGp4kOsBy/Pmhf+bPD/1zuW3mz1+Yqe9+sMx1g778+SxYuCgnj/hVisVikuS7F96Rx399VtZfZ6288u93atq+/8GHJfcDAFBf+m+/Y/pvv2PJ9c88/WT2HLxvtt72i0kWzzC/639/lX/+45laSfQ2bdtmzbW61nu8AAANrUnXRH/nnXcycuTI7Lfffunfv3/69++f/fbbL5dccknefvvtxg4PIEny5W03yutjR+Sp3w7PVWcdlC6dOtSsa9O6ZRYsWFSTQE+SD+ctLuOy3ZYb1NrPlWcemH+Puzh/vfV7OWyf2iViAAAay2abb5W//eWBTJs2NcViMRMfeyT/nvxavvil7Wu1+/Mf784eX9kuh3x97/zk6ssz90N/VQdQLwplfgAr1GRnoj/22GMZOHBg2rdvnwEDBuSzn/1skmTq1KkZNWpULr744vzpT3/Ktttuu9z9zJs3L/Pmzau1rFi9KIWqFvUWO9B8jPn7c/nduKfy2hvvZv3PrJXzvjs4v/vxcdlp6GWpri7mwUefz4+G7Z9TDts1P779wXRo1zoXnLhPkqRH1041+znvJ3fnL4++kDlz52dA/01y1ZkHZbX2bfKTX/ylsU4NACBJMuz0H+TiC87JPnvskhYtW6aqUMgZw8/PVtv89//Fdt9jr/To2Strde2Wl198PteMujyTX3stF182qhEjBwAojyabRP/ud7+br3/96xk9evRStZ6KxWKOPfbYfPe7382ECROWu58RI0bkvPPOq7WsRfcvpFXPL5Y9ZqD5+egPfz770pt55sU38tzd52XHbTfKg4++kOdemZKjz741F5+6f87/7t5ZVF2dn/ziL5nyzswUq6trtr34Z/fV/Pup5/+T9u3a5JTDBkiiAwCN7te//HmefeapjLzimvTs2StPPvF4Lrv4h1mra9d8sd92SRaXeFliw40+mzXX6prvHvut/Offk/OZddZtrNABPpXURIeG12TLuTz11FM55ZRTljkwFAqFnHLKKZk0adIK93PmmWfm/fffr/Vo2X2beogYIHntjXfz9nsfZIN1/lsP9I77Hk+f3c7KBgP/J2vvfHouGH1vuq6xWl79z7sl9/PYM6/lMz3WSOtWTfa7TgCgGZg7d25G//jKnDjs9Hx5p12y4Wc3zteHHJJddx+U22+5qeR2n9ts8yTJf/49uYEiBWg+CoVCWR/AijXZJHqPHj3y6KOPllz/6KOPpnv37ivcT5s2bdKxY8daD6VcgPqydrfOWbNTh0x5Z+ZS66ZN/yCzP5yfrw3cOnPnL8jYh/9Vcj+bb/yZTH9/duYvWFif4QIALNeihQuzcOHCVFXVTrJUVVWlWKwusVXywvOL73PW8kOjAJ8648ePz+DBg9OrV68UCoXcddddNesWLFiQ008/PZtttlk6dOiQXr165bDDDsubb75Zax/Tp0/PIYccko4dO6Zz58458sgjM2vWrFptnn766Xz5y19O27Zts84662TkyJENcXqwTE12iuP3vve9HHPMMZk4cWJ23XXXmoT51KlTM3bs2PzsZz/LpZde2shRAp92Hdq1rjWrvPfaa2bzz66d92bOyfT3Z+cH394zd42dlCnvzMz666yVC0/aNy//+52M+ftzNdsce9COefipVzJrzvzs+qVNctHJ+2b41b/L+7MW/9jWnjt+Pt3WXD2PPv1a5s5fkF2/tEm+f+TuufKWsQ1+vgBA8zNnzuxaM8bffOONvPD8c+nYsVN69OyVrbb5Qn585aVp06ZtevTslScnPpY/3vP7nDTs9CSLZ5v/+b57st32O6ZT58556cXnc9VlP8qWW2+bDT+7cWOdFsCnVmNPHp89e3a22GKLfOtb38r+++9fa92cOXPyxBNPZPjw4dliiy3y3nvv5aSTTsree++dxx9/vKbdIYcckrfeeitjxozJggULcsQRR+SYY47J7bffniSZOXNmdt999wwYMCCjR4/OM888k29961vp3LlzjjnmmAY9X0iSQrFYLDZ2EKXccccdueKKKzJx4sQsWrQoSdKiRYtss802GTZsWA488MAV7GHZ2m11QjnDBD7FvrzNRvnzdScttfzW3z+cEy+6I7+6/Jhsscln0nn1dnnr7fdz/4R/5fyf3J1p0z+oaXvdDw/NHjt8Pqu1b53nX5uaK28Zm1/c81jN+t2265vzv7t3NlinawqFQl7+99v52a//mhvu/Hua8BANNDFv/O2qxg4BqFBPPP5ojj/m8KWW7zl43ww/76K8+87b+enVV+SRh/+emTPfT4+evbLv/l/PkEOGplAoZOqUt3Lu/5yeV15+MXM//DDduvfITrsMyBFHHZsOq63W8CcEfCp06aCKQCkbnXbfihvVwYuX7LHK2xYKhfz2t7/NvvvuW7LNY489li9+8Yt5/fXXs+666+a5557Lpptumsceeyzbbrv4R6rvu+++7LnnnvnPf/6TXr165ac//Wl+8IMfZMqUKWndunWS5Iwzzshdd92Vf/2r9F91Q31p0kn0JRYsWJB33nknSbLWWmulVatWn2h/kugAwKeNJDoA8GkiiV5auZPo/7hgl8ybN6/WsjZt2qRNmzYr3HZlkuj3339/dt9998yYMSMdO3bMDTfckFNPPTXvvfdeTZuFCxembdu2+fWvf5399tsvhx12WGbOnFmrVMwDDzyQr3zlK5k+fXrWWGONOp8nfBJNtib6R7Vq1So9e/ZMz549P3ECHQAAAAAqVaFQ3seIESPSqVOnWo8RI0aUJda5c+fm9NNPzze+8Y107NgxSTJlypR069atVruWLVumS5cumTJlSk2bj/8W4pLnS9pAQ2qyNdEBAAAAgNoKZS6KfuaZZ2bYsGG1lq3MLPQVWbBgQQ488MAUi8X89Kc//cT7g8YkiQ4AAAAAzdTKlm6piyUJ9Ndffz3jxo2rmYWeJD169Mi0adNqtV+4cGGmT5+eHj161LSZOnVqrTZLni9pAw2pIsq5AAAAAADlL+dSbksS6C+++GLuv//+rLnmmrXW9+/fPzNmzMjEiRNrlo0bNy7V1dXp169fTZvx48dnwYIFNW3GjBmTjTfeWD10GoUkOgAAAACwUmbNmpVJkyZl0qRJSZJXX301kyZNyuTJk7NgwYJ87Wtfy+OPP57bbrstixYtypQpUzJlypTMnz8/SdK3b9/sscceOfroo/Poo4/moYceygknnJAhQ4akV69eSZKDDz44rVu3zpFHHplnn302d9xxR6666qqlys5AQ1HOBQAAAAAqRFVVPUwfr4PHH388u+yyS83zJYntoUOH5txzz83vf//7JMmWW25Za7sHHnggO++8c5LktttuywknnJBdd901VVVVOeCAAzJq1Kiatp06dcqf//znHH/88dlmm22y1lpr5eyzz84xxxxTvycHJUiiAwAAAECFqI8SLHWx8847p1gslly/vHVLdOnSJbfffvty22y++eb561//Wuf4oD4o5wIAAAAAACWYiQ4AAAAAFaLQ2FPRoRmSRAcAAACACiGHDg1PORcAAAAAACjBTHQAAAAAqBDKuUDDk0QHAAAAgAohiQ4NTzkXAAAAAAAowUx0AAAAAKgQJqJDwzMTHQAAAAAASjATHQAAAAAqhJro0PAk0QEAAACgQsihQ8NTzgUAAAAAAEowEx0AAAAAKoRyLtDwJNEBAAAAoELIoUPDU84FAAAAAABKMBMdAAAAACqEci7Q8CTRAQAAAKBCyKFDw1POBQAAAAAASjATHQAAAAAqhHIu0PDMRAcAAAAAgBLMRAcAAACACmEiOjQ8SXQAAAAAqBDKuUDDU84FAAAAAABKMBMdAAAAACqEiejQ8CTRAQAAAKBCKOcCDU85FwAAAAAAKMFMdAAAAACoECaiQ8OTRAcAAACACqGcCzQ85VwAAAAAAKAEM9EBAAAAoEKYiQ4Nz0x0AAAAAAAowUx0AAAAAKgQJqJDw5NEBwAAAIAKoZwLNDzlXAAAAAAAoAQz0QEAAACgQpiIDg1PEh0AAAAAKoRyLtDwlHMBAAAAAIASzEQHAAAAgAphIjo0PEl0AAAAAKgQVbLo0OCUcwEAAAAAgBLMRAcAAACACmEiOjQ8SXQAAAAAqBAFWXRocMq5AAAAAABACZLoAAAAAFAhqgrlfdTV+PHjM3jw4PTq1SuFQiF33XVXrfXFYjFnn312evbsmXbt2mXAgAF58cUXa7WZPn16DjnkkHTs2DGdO3fOkUcemVmzZtVq8/TTT+fLX/5y2rZtm3XWWScjR46se7BQJpLoAAAAAMBKmT17drbYYotcc801y1w/cuTIjBo1KqNHj84jjzySDh06ZODAgZk7d25Nm0MOOSTPPvtsxowZk7vvvjvjx4/PMcccU7N+5syZ2X333bPeeutl4sSJueSSS3Luuefm2muvrffzg2VREx0AAAAAKkRj10QfNGhQBg0atMx1xWIxV155Zf7nf/4n++yzT5LklltuSffu3XPXXXdlyJAhee6553Lfffflsccey7bbbpskufrqq7Pnnnvm0ksvTa9evXLbbbdl/vz5ueGGG9K6det87nOfy6RJk3L55ZfXSrZDQzETHQAAAAAqRKFQ3se8efMyc+bMWo958+atUmyvvvpqpkyZkgEDBtQs69SpU/r165cJEyYkSSZMmJDOnTvXJNCTZMCAAamqqsojjzxS02bHHXdM69ata9oMHDgwzz//fN57771Vig0+CUl0AAAAAGimRowYkU6dOtV6jBgxYpX2NWXKlCRJ9+7day3v3r17zbopU6akW7dutda3bNkyXbp0qdVmWfv46DGgISnnAgAAAAAVopDylnM588wzM2zYsFrL2rRpU9ZjQKWTRAcAAACAClFV5pLobdq0KVvSvEePHkmSqVOnpmfPnjXLp06dmi233LKmzbRp02ptt3DhwkyfPr1m+x49emTq1Km12ix5vqQNNCTlXAAAAACAT6xPnz7p0aNHxo4dW7Ns5syZeeSRR9K/f/8kSf/+/TNjxoxMnDixps24ceNSXV2dfv361bQZP358FixYUNNmzJgx2XjjjbPGGms00NnAf0miAwAAAECFKBQKZX3U1axZszJp0qRMmjQpyeIfE500aVImT56cQqGQk08+ORdccEF+//vf55lnnslhhx2WXr16Zd99902S9O3bN3vssUeOPvroPProo3nooYdywgknZMiQIenVq1eS5OCDD07r1q1z5JFH5tlnn80dd9yRq666aqmyM9BQlHMBAAAAgAqxCnnvsnr88cezyy671DxfktgeOnRobrrppnz/+9/P7Nmzc8wxx2TGjBnZYYcdct9996Vt27Y129x222054YQTsuuuu6aqqioHHHBARo0aVbO+U6dO+fOf/5zjjz8+22yzTdZaa62cffbZOeaYYxruROEjCsVisdjYQTS0dlud0NghAACU1Rt/u6qxQwAAKJsuHVo0dghN1r7XPV7W/d111LZl3R98GpmJDgAAAAAVoqqxp6JDM6QmOgAAAAAAlGAmOgAAAABUCBPRoeFJogMAAABAhSjIokODU84FAAAAAABKMBMdAAAAACqEiejQ8CTRAQAAAKBCVMmiQ4NTzgUAAAAAAEowEx0AAAAAKoR56NDwJNEBAAAAoEIUlHOBBqecCwAAAAAAlGAmOgAAAABUiCoT0aHBmYkOAAAAAAAlmIkOAAAAABVCTXRoeJLoAAAAAFAh5NCh4ZUlif773/9+pdvuvffe5TgkAAAAAADUu7Ik0ffdd9+ValcoFLJo0aJyHBIAAAAAmh3lXKDhlSWJXl1dXY7dAAAAAADLUSWHDg2uqrEDAAAAAACApqpeflh09uzZ+ctf/pLJkydn/vz5tdadeOKJ9XFIAAAAAPjUU84FGl7Zk+hPPvlk9txzz8yZMyezZ89Oly5d8s4776R9+/bp1q2bJDoAAAAArCIpdGh4ZS/ncsopp2Tw4MF577330q5duzz88MN5/fXXs8022+TSSy8t9+EAAAAAAKDelD2JPmnSpJx66qmpqqpKixYtMm/evKyzzjoZOXJkzjrrrHIfDgAAAACajapCoawPYMXKnkRv1apVqqoW77Zbt26ZPHlykqRTp07597//Xe7DAQAAAABAvSl7TfStttoqjz32WDbaaKPstNNOOfvss/POO+/k1ltvzec///lyHw4AAAAAmg2Tx6HhlX0m+kUXXZSePXsmSS688MKsscYaOe644/L222/n2muvLffhAAAAAKDZKBQKZX0AK1b2mejbbrttzb+7deuW++67r9yHAAAAAACABlH2JDoAAAAAUD9MHoeGV/Ykep8+fZb7pyCvvPJKuQ8JAAAAAM1ClSw6NLiyJ9FPPvnkWs8XLFiQJ598Mvfdd19OO+20ch8OAAAAAADqTdmT6CeddNIyl19zzTV5/PHHy304AAAAAGg2TESHhlfVUAcaNGhQ/vd//7ehDgcAAAAAnzqFQqGsD2DFGiyJ/pvf/CZdunRpqMMBAAAAAMAnVvZyLltttVWtb7GKxWKmTJmSt99+Oz/5yU/KfbhV8t5jP27sEAAAyqpYbOwIAABoCA02IxaoUfYk+j777FMriV5VVZWuXbtm5513ziabbFLuwwEAAAAAQL0pexL93HPPLfcuAQAAAIBEHXNoBGX/C5AWLVpk2rRpSy1/991306JFi3IfDgAAAACajapCeR/AipU9iV4sUZBz3rx5ad26dbkPBwAAAAAA9aZs5VxGjRqVZPGflFx33XVZbbXVatYtWrQo48ePVxMdAAAAAD4Bs8eh4ZUtiX7FFVckWTwTffTo0bVKt7Ru3Tq9e/fO6NGjy3U4AAAAAGh21ESHhle2JPqrr76aJNlll11y5513Zo011ijXrgEAAAAAoFGULYm+xAMPPFDuXQIAAAAAUc4FGkPZf1j0gAMOyI9+9KOllo8cOTJf//rXy304AAAAAGg2CoXyPoAVK3sSffz48dlzzz2XWj5o0KCMHz++3IcDAAAAABrAokWLMnz48PTp0yft2rXLBhtskB/+8IcpFos1bYrFYs4+++z07Nkz7dq1y4ABA/Liiy/W2s/06dNzyCGHpGPHjuncuXOOPPLIzJo1q6FPB1Za2ZPos2bNSuvWrZda3qpVq8ycObPchwMAAACAZqOqUCjroy5+9KMf5ac//Wl+/OMf57nnnsuPfvSjjBw5MldffXVNm5EjR2bUqFEZPXp0HnnkkXTo0CEDBw7M3Llza9occsghefbZZzNmzJjcfffdGT9+fI455piyvUZQbmVPom+22Wa54447llr+y1/+Mptuumm5DwcAAAAArKJ58+Zl5syZtR7z5s1bZtu///3v2WeffbLXXnuld+/e+drXvpbdd989jz76aJLFs9CvvPLK/M///E/22WefbL755rnlllvy5ptv5q677kqSPPfcc7nvvvty3XXXpV+/ftlhhx1y9dVX55e//GXefPPNhjptqJOyJ9GHDx+eH/7whxk6dGhuvvnm3HzzzTnssMNywQUXZPjw4eU+HAAAAAA0G1VlfowYMSKdOnWq9RgxYsQyj73ddttl7NixeeGFF5IkTz31VP72t79l0KBBSZJXX301U6ZMyYABA2q26dSpU/r165cJEyYkSSZMmJDOnTtn2223rWkzYMCAVFVV5ZFHHinHSwRl17LcOxw8eHDuuuuuXHTRRfnNb36Tdu3aZYsttsi4cePSpUuXch8OAAAAAJqNcv8Y6Jlnnplhw4bVWtamTZtltj3jjDMyc+bMbLLJJmnRokUWLVqUCy+8MIccckiSZMqUKUmS7t2719que/fuNeumTJmSbt261VrfsmXLdOnSpaYNNDVlT6InyV577ZW99torSTJz5sz84he/yPe+971MnDgxixYtqo9DAgAAAAB11KZNm5JJ84/71a9+ldtuuy233357Pve5z2XSpEk5+eST06tXrwwdOrSeI4XGUy9J9CQZP358rr/++vzv//5vevXqlf333z/XXHNNfR0OAAAAAD716vpjoOV02mmn5YwzzsiQIUOSLP5txNdffz0jRozI0KFD06NHjyTJ1KlT07Nnz5rtpk6dmi233DJJ0qNHj0ybNq3WfhcuXJjp06fXbA9NTVlrok+ZMiUXX3xxNtpoo3z9619Px44dM2/evNx11125+OKL84UvfKGchwMAAACAZqVQKO+jLubMmZOqqtrpxBYtWqS6ujpJ0qdPn/To0SNjx46tWT9z5sw88sgj6d+/f5Kkf//+mTFjRiZOnFjTZty4camurk6/fv1W8VWB+lW2JPrgwYOz8cYb5+mnn86VV16ZN998M1dffXW5dg8AAAAANKLBgwfnwgsvzD333JPXXnstv/3tb3P55Zdnv/32S5IUCoWcfPLJueCCC/L73/8+zzzzTA477LD06tUr++67b5Kkb9++2WOPPXL00Ufn0UcfzUMPPZQTTjghQ4YMSa9evRrx7KC0spVz+eMf/5gTTzwxxx13XDbaaKNy7RYAAAAA+D9VjVfNJVdffXWGDx+e73znO5k2bVp69eqVb3/72zn77LNr2nz/+9/P7Nmzc8wxx2TGjBnZYYcdct9996Vt27Y1bW677baccMIJ2XXXXVNVVZUDDjggo0aNaoxTgpVSKBaLxXLs6OGHH87111+fO+64I3379s2hhx6aIUOGpGfPnnnqqaey6aabluMwZTF3YWNHAABQXuW5owMAaBratWrsCJqu88e8VNb9nb3bhmXdH3wala2cy5e+9KX87Gc/y1tvvZVvf/vb+eUvf5levXqluro6Y8aMyQcffFCuQwEAAAAAQIMo20z0ZXn++edz/fXX59Zbb82MGTOy22675fe//319HW6lmYkOAHzamIkOAHyamIle2g/vL+9M9OEDzESHFSnbTPRl2XjjjTNy5Mj85z//yS9+8Yv6PBQAAAAAAJRdvc5Eb6rMRAcAPm2a3x0dAPBpZiZ6aReOLe9M9B/saiY6rEjLxg4AAAAAAFg5hRQaOwRoduq1nAsAAAAAAFQyM9EBAAAAoEJUmYgODU4SHQAAAAAqhCQ6NDzlXAAAAAAAoAQz0QEAAACgQhQKpqJDQ5NEBwAAAIAKoZwLNDzlXAAAAAAAoAQz0QEAAACgQqjmAg1PEh0AAAAAKkSVLDo0OOVcAAAAAACgBDPRAQAAAKBC+GFRaHhmogMAAAAAQAlmogMAAABAhVASHRqeJDoAAAAAVIiqyKJDQ1POBQAAAAAASjATHQAAAAAqhHIu0PAk0QEAAACgQlRJokODU84FAAAAAABKMBMdAAAAACpElXou0OAk0QEAAACgQsihQ8NTzgUAAAAAAEowEx0AAAAAKoRyLtDwzEQHAAAAAIASzEQHAAAAgAphIjo0PEl0AAAAAKgQykpAw/O+AwAAAACAEsxEBwAAAIAKUVDPBRqcJDoAAAAAVAgpdGh4yrkAAAAAAEAJZqIDAAAAQIWoUs4FGpwkOgAAAABUCCl0aHjKuQAAAAAAQAlmogMAAABAhVDNBRqemegAAAAAAFCCmegAAAAAUCEKpqJDg5NEBwAAAIAKoawENDzvOwAAAAAAKMFMdAAAAACoEMq5QMMzEx0AAAAAKkShzI+6euONN/LNb34za665Ztq1a5fNNtssjz/+eM36YrGYs88+Oz179ky7du0yYMCAvPjii7X2MX369BxyyCHp2LFjOnfunCOPPDKzZs1ahWigYUiiAwAAAAAr9N5772X77bdPq1at8sc//jH//Oc/c9lll2WNNdaoaTNy5MiMGjUqo0ePziOPPJIOHTpk4MCBmTt3bk2bQw45JM8++2zGjBmTu+++O+PHj88xxxzTGKcEK6VQLBaLjR1EQ5u7sLEjAAAor+Z3RwcAfJq1a9XYETRdv3nqrbLub/AmXTJv3rxay9q0aZM2bdos1faMM87IQw89lL/+9a/L3FexWEyvXr1y6qmn5nvf+16S5P3330/37t1z0003ZciQIXnuueey6aab5rHHHsu2226bJLnvvvuy55575j//+U969epV1vODcjATHQAAAAAqRFWZHyNGjEinTp1qPUaMGLHMY//+97/Ptttum69//evp1q1bttpqq/zsZz+rWf/qq69mypQpGTBgQM2yTp06pV+/fpkwYUKSZMKECencuXNNAj1JBgwYkKqqqjzyyCNleIWg/CTRAQAAAKCZOvPMM/P+++/Xepx55pnLbPvKK6/kpz/9aTbaaKP86U9/ynHHHZcTTzwxN998c5JkypQpSZLu3bvX2q579+4166ZMmZJu3brVWt+yZct06dKlpg00NS0bOwAAAAAAYOUUCqvyc6CllSrdsizV1dXZdtttc9FFFyVJttpqq/zjH//I6NGjM3To0LLGBU2JmegAAAAAwAr17Nkzm266aa1lffv2zeTJk5MkPXr0SJJMnTq1VpupU6fWrOvRo0emTZtWa/3ChQszffr0mjbQ1EiiAwAAAECFKJT5URfbb799nn/++VrLXnjhhay33npJkj59+qRHjx4ZO3ZszfqZM2fmkUceSf/+/ZMk/fv3z4wZMzJx4sSaNuPGjUt1dXX69etXx4igYSjnAgAAAAAVoszVXOrklFNOyXbbbZeLLrooBx54YB599NFce+21ufbaa/8vtkJOPvnkXHDBBdloo43Sp0+fDB8+PL169cq+++6bZPHM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evVqlfMAAADw5+lEBwBoJZWVlenfv3+OOuqoTJ8+PePGjcuDDz7YPILlS1/6UgYMGJDBgwcnSTZs2JBzzz03PXv2TK9evXL22WfnhRdeaD7fnj17MmvWrPTs2TO9e/fOP/zDP6SpqanFd/7pOJeGhoZcccUVOfLII1NZWZljjz02X//61/PCCy9k7NixSZJ3vetdKRQKmTZtWpJk7969qauryzHHHJMuXbpkxIgR+Zd/+ZcW3/PII4/kuOOOS5cuXTJ27NgWdQIAAHRkQnQAgAOkS5cuaWxsTJIsXbo069aty5IlS7J48eLs2rUr48ePT7du3fLTn/40//qv/5quXbvm9NNPb/7MTTfdlPnz5+cb3/hGHnvssfzhD3/IAw888Ibf+clPfjL33HNPbr311jzzzDO5884707Vr1xx55JG5//77kyTr1q3LSy+9lFtuuSVJUldXl29+85uZN29enn766Vx22WX527/92yxfvjzJf4T9kyZNyplnnplVq1blwgsvzJVXXnmgfjYAAIB2xTgXAIBW1tTUlKVLl+YHP/hBZs6cmS1btqSqqip33XVX8xiXb33rW9m7d2/uuuuuFAqFJMndd9+dnj17ZtmyZTnttNNy8803Z86cOZk0aVKSZN68efnBD35Q9Ht/9atf5d57782SJUsybty4JMl73vOe5uOvj37p169fevbsmeQ/Otevu+66/PCHP0xNTU3zZx577LHceeedOfXUU3PHHXfkve99b2666aYkyeDBg7NmzZrccMMNrfirAQAAtE9CdACAVrJ48eJ07do1u3btyt69e/M3f/M3+fznP5/a2toMHz68xRz01atX59lnn023bt1anGPnzp157rnnsm3btrz00ksZM2ZM87FOnTrlxBNP3Geky+tWrVqVQw89NKeeeupbrvnZZ5/Nq6++mo9//OMt1hsbG3PCCSckSZ555pkWdSRpDtwBAAA6OiE6AEArGTt2bO64445UVFRkwIAB6dTpP2+1qqqqWuzdvn17Ro8enW9/+9v7nKdv375v6/u7dOmy35/Zvn17kuThhx/OwIEDWxyrrKx8W3UAAAB0JEJ0AIBWUlVVlWOPPfYt7R01alS++93vpl+/funevfuf3fPud787TzzxRE455ZQkye7du7Ny5cqMGjXqz+4fPnx49u7dm+XLlzePc/ljr3fC79mzp3lt2LBhqayszPr164t2sA8dOjQPPvhgi7Wf/exnb36RAAAAHYAHiwIAtIHzzjsvffr0ydlnn52f/vSnef7557Ns2bJ85jOfyYsvvpgkueSSS3L99ddn0aJFWbt2bS6++OJs3bq16DmPPvroTJ06Neeff34WLVrUfM577703SXLUUUelUChk8eLF2bJlS7Zv355u3brl7//+73PZZZdlwYIFee655/LUU0/lq1/9ahYsWJAk+fSnP51f//rXmT17dtatW5eFCxdm/vz5B/onAgAAaBeE6AAAbeDwww/PT37ykwwaNCiTJk3K0KFDc8EFF2Tnzp3NnemXX355pkyZkqlTp6ampibdunXLJz7xiTc87x133JFzzjknF198cYYMGZKLLrooO3bsSJIMHDgwX/jCF3LllVemuro6M2bMSJJce+21+dznPpe6uroMHTo0p59+eh5++OEcc8wxSZJBgwbl/vvvz6JFizJixIjMmzcv11133QH8dQAAANqPQlOxJ1MBAAAAAMBBTic6AAAAAAAUIUQHAAAAAIAihOgAAAAAAFCEEB0AAAAAAIoQogMAAAAAQBFCdAAAAAAAKEKIDgAAAAAARQjRAQAAAACgCCE6AAAAAAAUIUQHAAAAAIAihOgAAAAAAFDE/wM+b0mAzao4wgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1500x1000 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Visualization complete!\n",
      "Green triangles (^): Actual anomalies\n",
      "Red squares (s): Predicted anomalies\n",
      "Orange X: False positives (normal classified as anomaly)\n",
      "Purple X: False negatives (anomaly missed)\n"
     ]
    }
   ],
   "source": [
    "# VISUALIZATION: Anomalies (Green = Correct, Red = Predicted)\n",
    "# This is required by the assignment\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(15, 10))\n",
    "\n",
    "# Plot 1: Sample time series with anomalies\n",
    "sample_range = slice(0, 200)  # First 200 samples\n",
    "y_vis = y_binary[sample_range]\n",
    "fourier_vis = fourier_anomalies[sample_range]\n",
    "\n",
    "# Plot actual anomalies in GREEN (correct)\n",
    "actual_anomaly_indices = np.where(y_vis == 1)[0]\n",
    "ax1.scatter(actual_anomaly_indices, [1.2] * len(actual_anomaly_indices), \n",
    "           color='green', s=50, marker='^', label='Actual Anomalies (Green)', alpha=0.8)\n",
    "\n",
    "# Plot predicted anomalies in RED\n",
    "predicted_anomaly_indices = np.where(fourier_vis == 1)[0]\n",
    "ax1.scatter(predicted_anomaly_indices, [0.8] * len(predicted_anomaly_indices), \n",
    "           color='red', s=50, marker='s', label='Predicted Anomalies (Red)', alpha=0.8)\n",
    "\n",
    "# Highlight false positives and false negatives\n",
    "false_positives_vis = (fourier_vis == 1) & (y_vis == 0)\n",
    "false_negatives_vis = (fourier_vis == 0) & (y_vis == 1)\n",
    "\n",
    "fp_indices = np.where(false_positives_vis)[0]\n",
    "fn_indices = np.where(false_negatives_vis)[0]\n",
    "\n",
    "ax1.scatter(fp_indices, [0.8] * len(fp_indices), \n",
    "           color='orange', s=100, marker='x', label='False Positives', alpha=0.9)\n",
    "ax1.scatter(fn_indices, [1.2] * len(fn_indices), \n",
    "           color='purple', s=100, marker='x', label='False Negatives', alpha=0.9)\n",
    "\n",
    "ax1.set_title('Fourier Model - Anomaly Detection (First 200 samples)\\nGreen = Correct Anomalies, Red = Predicted Anomalies')\n",
    "ax1.set_xlabel('Sample Index')\n",
    "ax1.set_ylabel('Detection Type')\n",
    "ax1.legend()\n",
    "ax1.grid(True, alpha=0.3)\n",
    "ax1.set_ylim(0.5, 1.5)\n",
    "\n",
    "# Plot 2: Confusion matrix\n",
    "cm = confusion_matrix(y_binary, fourier_anomalies)\n",
    "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', ax=ax2)\n",
    "ax2.set_title('Confusion Matrix')\n",
    "ax2.set_xlabel('Predicted')\n",
    "ax2.set_ylabel('Actual')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "print(\"Visualization complete!\")\n",
    "print(\"Green triangles (^): Actual anomalies\")\n",
    "print(\"Red squares (s): Predicted anomalies\")\n",
    "print(\"Orange X: False positives (normal classified as anomaly)\")\n",
    "print(\"Purple X: False negatives (anomaly missed)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=== FOURIER MODEL ERROR ANALYSIS ===\n",
      "\n",
      "1. FALSE POSITIVES ANALYSIS (Why normal data classified as anomalies):\n",
      "   - Normal ECG signals with unusual frequency characteristics\n",
      "   - Signals with spectral patterns that deviate from normal distribution\n",
      "   - Individual variations in heart rhythm frequency components\n",
      "   - Noisy measurements that create unusual spectral features\n",
      "\n",
      "2. FALSE NEGATIVES ANALYSIS (Why anomalies missed):\n",
      "   - Anomalies with frequency characteristics similar to normal signals\n",
      "   - Time-domain anomalies that don't affect frequency domain significantly\n",
      "   - Anomalies in frequency ranges not captured by the model\n",
      "   - Complex anomalies that have normal spectral characteristics\n",
      "\n",
      "3. FOURIER MODEL STRENGTHS:\n",
      "   - Robust to noise in time domain\n",
      "   - Good at detecting frequency-based anomalies\n",
      "   - Can capture periodic and spectral patterns\n",
      "   - Works well with stationary signals\n",
      "\n",
      "4. FOURIER MODEL LIMITATIONS:\n",
      "   - Assumes stationarity of the signal\n",
      "   - May miss time-domain specific anomalies\n",
      "   - Sensitive to window size and frequency resolution\n",
      "   - Requires sufficient frequency domain separation between normal/anomaly\n",
      "\n",
      "Fourier Transform model complete with comprehensive error analysis!\n"
     ]
    }
   ],
   "source": [
    "# ERROR ANALYSIS: Why errors occur\n",
    "# This is the most important part (40% of grade)\n",
    "\n",
    "print(\"=== FOURIER MODEL ERROR ANALYSIS ===\")\n",
    "print(\"\\n1. FALSE POSITIVES ANALYSIS (Why normal data classified as anomalies):\")\n",
    "print(\"   - Normal ECG signals with unusual frequency characteristics\")\n",
    "print(\"   - Signals with spectral patterns that deviate from normal distribution\")\n",
    "print(\"   - Individual variations in heart rhythm frequency components\")\n",
    "print(\"   - Noisy measurements that create unusual spectral features\")\n",
    "\n",
    "print(\"\\n2. FALSE NEGATIVES ANALYSIS (Why anomalies missed):\")\n",
    "print(\"   - Anomalies with frequency characteristics similar to normal signals\")\n",
    "print(\"   - Time-domain anomalies that don't affect frequency domain significantly\")\n",
    "print(\"   - Anomalies in frequency ranges not captured by the model\")\n",
    "print(\"   - Complex anomalies that have normal spectral characteristics\")\n",
    "\n",
    "print(\"\\n3. FOURIER MODEL STRENGTHS:\")\n",
    "print(\"   - Robust to noise in time domain\")\n",
    "print(\"   - Good at detecting frequency-based anomalies\")\n",
    "print(\"   - Can capture periodic and spectral patterns\")\n",
    "print(\"   - Works well with stationary signals\")\n",
    "\n",
    "print(\"\\n4. FOURIER MODEL LIMITATIONS:\")\n",
    "print(\"   - Assumes stationarity of the signal\")\n",
    "print(\"   - May miss time-domain specific anomalies\")\n",
    "print(\"   - Sensitive to window size and frequency resolution\")\n",
    "print(\"   - Requires sufficient frequency domain separation between normal/anomaly\")\n",
    "\n",
    "# Save results\n",
    "import pickle\n",
    "fourier_results = {\n",
    "    'predictions': fourier_anomalies,\n",
    "    'scores': fourier_scores,\n",
    "    'features': X_fourier,\n",
    "    'performance': {'precision': precision, 'recall': recall, 'f1': f1, 'auc': auc},\n",
    "    'error_analysis': {\n",
    "        'false_positives': false_positives,\n",
    "        'false_negatives': false_negatives,\n",
    "        'true_positives': true_positives,\n",
    "        'true_negatives': true_negatives\n",
    "    }\n",
    "}\n",
    "\n",
    "with open('../results/fourier_model_results.pkl', 'wb') as f:\n",
    "    pickle.dump(fourier_results, f)\n",
    "\n",
    "print(\"\\nFourier Transform model complete with comprehensive error analysis!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
